今天偶然遇到了这个字符串的截取问题,总结了一下
Mysql字符串截取总结:left()、right()、substring()、substring_index()
mysql 是不区分大小写的
1.Left (name,4)截取左边的4个字符
Select left (201809,4)年;
结果:2018
2.right (name,2)截取右边的2个字符
Select right (201809,2)年;
结果:09
3.SUBSTRING(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符
Select SUBSTRING(‘成都融资事业部’,5,3);
结果:事业部
4.SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符
Select SUBSTRING(‘成都融资事业部’,3);
结果:资事业部
5.SUBSTRING(name, -4) 截取name这个字段的第 4 个字符位置(倒数)开始取,直到结束
Select SUBSTRING(‘成都融资事业部’,-4);
结果:资事业部
6.SUBSTRING(name, -4,2) 截取name这个字段的第 4 个字符位置(倒数)开始取,只截取之后的2个字符
Select SUBSTRING(‘成都融资事业部’,-4,2);
结果:资事
我们注意到在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值。
7.substring_index(‘www.baidu.com’, ‘.’, 2) 截取第二个 ‘.’ 之前的所有字符
Select substring_index(‘www.baidu.com’, ‘.’, 2) ;
结果:www.baidu
8.substring_index(‘www.baidu.com’, ‘.’, -2) 截取第二个 ‘.’ (倒数)之后的所有字符
Select substring_index(‘www.baidu.com’, ‘.’, -2) ;
结果baidu.com
9.SUBSTR(name, 1, CHAR_LENGTH(name)-3) 截取name字段,取除name字段后三位的所有字符
Select SUBSTR(‘成都融资事业部’, 1, CHAR_LENGTH(‘成都融资事业部’)-3);
结果:成都融资