以举例的方式,展示 mysql 的几种字符串截取方法的效果,包括LEFT()、MID()、RIGHT()、SUBSTR()、SUBSTRING_INDEX()
1 .LEFT
LEFT(str,len)
#从str
左截取len
长度的字符串
SELECT LEFT('22:30(-1)',3) FROM `20190101` WHERE id = 1;
## 结果--> 22:
2 . MID
MID(str,pos,len)
# 从str
pos
位置起,截取长度为len
的字符串
SELECT MID('22:30(-1)',3,2) FROM `20190101` WHERE id = 1;
## 结果--> :3
3 . RIGHT
RIGHT(str,len)
# 从str
左侧起截取len
长度的字符串
SELECT RIGHT('22:30(-1)',3) FROM `20190101` WHERE id = 1;
## 结果--> -1)
4 . SUBSTR 同 SUBSTRING
SUBSTR(str,pos)
或SUBSTR(str FROM pos)
#从pos
位置开始截取字符串到最后SUBSTR(str,pos,len)
或SUBSTR(str FROM pos FOR len)
#从pos
位置开始,截取长度为len
的字符串
SELECT SUBSTR('22:30(-1)' ,2 );
## 结果--> 2:30(-1) ,sql语句也可以写成-->SELECT SUBSTR('22:30(-1)' FROM 2 );
SELECT SUBSTR('22:30(-1)' FROM -2 );
## 结果--> 1) ,sql语句也可以写成-->SELECT SUBSTR('22:30(-1)',-2);
SELECT SUBSTR('22:30(-1)', 2, 4);
## 结果--> 2:30 ,sql语句也可以写成-->SELECT SUBSTR('22:30(-1)' FROM 2 FOR 4);
SELECT SUBSTR('22:30(-1)' FROM -4 FOR 2);
## 结果--> (- ,sql语句也可以写成-->SELECT SUBSTR('22:30(-1)',-4,2);
5 . SUBSTRING_INDEX
SUBSTRING_INDEX(str,delim,count)
,具体解释见示例注释
SELECT SUBSTRING_INDEX(('22:30(-1)(a:b:c)' ,'(',1);
## 结果--> 22:30 解释-->截取左边第1个‘(’左边的字符串
SELECT SUBSTRING_INDEX('22:30(-1)(a:b:c)' ,'(',2);
## 结果--> 22:30(-1) 解释-->截取左边第2个‘(’左边的字符串
SELECT SUBSTRING_INDEX('22:30(-1)(a:b:c)' ,'(',-1);
## 结果--> a:b:c) 解释-->截取右边第1个‘(’右边边的字符串
SELECT SUBSTRING_INDEX('22:30(-1)(a:b:c)' ,'(',-2);
## 结果--> -1)(a:b:c) 解释-->截取右边第2个‘(’右边边的字符串