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)    -- 获取三级目录

  

原文地址:https://www.cnblogs.com/wwwcf1982603555/p/13750275.html