首先需要使用到的方法有SUBSTRING(SUBSTR)、LENGTH、LOCATE、REVERSE、SUBSTRING_INDEX,先看一下这几个方法的大致意思及使用
方法
使用示例
方法及参数解释
SUBSTRING(SUBSTR)
SUBSTRING(str,pos)
mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
SUBSTRING(str FROM pos)
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
SUBSTRING(str,pos,len)
mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
SUBSTRING(str FROM pos FOR len)
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
-> 'ki'
方法:截取字符串
参数:str:被截取字符串
pos:开始截取的位置
len:截取的长度
注:1.pos是位置,不是下标;
2.pos可以为负数,为负时则从后开始截取;为0时什么都没有
LENGTH
LENGTH(str),
mysql> SELECT LENGTH('text');
-> 4
方法:获取字符串长度
参数:str:要获取长度的字符串
LOCATE
LOCATE(substr,str)
mysql> SELECT LOCATE('bar', 'foobarbar'); -> 4
LOCATE(substr,str,pos)
mysql> SELECT LOCATE('bar', 'foobarbar', 5); -> 7
方法:返回字符串 substr 在字符串 str 中第一次出现的位置。
如果子串 substr 在 str 中不存在,返回值为 0
参数:substr:原字符串
str:要查找的字符串
pos:开始查找的位置
REVERSE
REVERSE(str)
mysql> SELECT REVERSE('abc');
-> 'cba'
方法:反转字符串
参数:str:要反转的字符串
SUBSTRING_INDEX
SUBSTRING_INDEX(str,delim,count)
mysql> SELECT SUBSTRING_INDEX('www.mysql.com','.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com','.', -2);
-> 'mysql.com'
方法:按关键字截取字符串
参数:str:被截取字符串
delim:关键字
count:关键字出现的次数
接下来就是利用mysql 实现 substring+lastindexof
方法一:SELECT SUBSTRING_INDEX(str, search_str, -1);
示例:mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -1);
-> 'com'
方法二:SELECT SUBSTR(str, LENGTH(str) - LOCATE(search_str, REVERSE(str)) + 2)
示例:mysql> SELECT SUBSTR('www.mysql.com', LENGTH('www.mysql.com') - LOCATE('.', REVERSE('www.mysql.com')) + 2);
-> 'com'
总结:方法一比较简单,方法二比较灵活
mysql 实现 substring+lastindexof 的方法
最新推荐文章于 2022-11-22 12:43:38 发布