mysql截取字符串取值
使用mysql过程中根据实际业务的开发需求和表的设计有时候我们需要在sql中根据某个字符串截取并且取值:demo如下:
ifnull(max(SUBSTRING_INDEX(c.check_score,',',-1)),'-') swjdf //按照,截取check_score这个字段的值,-1取的是倒数第一位即最后一位
SUBSTRING_INDEX函数语法:
SUBSTRING_INDEX(str,delim,count)
str: 待分割字符串
delim:分割符
count: 取到第几个分割后的子字符串
该函数返回分隔符delim的出现次数之前的字符串str的子字符串。
如果count为正数,则返回最后分隔符左边的所有内容(从左边计数)。
如果count为负,则返回最后分隔符右侧的所有内容(从右开始计数)。
SUBSTRING INDEX()在搜索delim时执行区分大小写的匹配。
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); -> 'www.mysql' mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -1); -> 'com'
SUBSTRING_INDEX(ctgr, '-', 1) -- 获取一级目录 SUBSTRING_INDEX(SUBSTRING_INDEX(ctgr,'-',2), '-', -1) -- 获取二级目录(先获取前面两级,然后截取末位的子串) SUBSTRING_INDEX(ctgr, '-', -1) -- 获取三级目录
春有百花秋有月,夏有凉风冬有雪!