文章目录
前言:在实际的项目开发中有时会有对数据库某个字段截取部分的需求,这种场景有时直接通过数据库操作比通过代码实现要方便些,而mysql提供了许多字符串函数可以用来处理这些需求,比如Mysql字符串截取有:left()、right()、substring()、substring_index()。
一、left()
left():顾名思义就是从左边截取字符串。
用法:left(str, length),即:left(被截取字符串, 截取长度)
SELECT left('JingLiPoSuo',2);
结果为:Ji
二、right()
right():顾名思义就是从右边截取字符串。
用法:right(str, length),即:right(被截取字符串, 截取长度)
SELECT right('JingLiPoSuo',2);
结果为:uo
三、截取特定长度的字符串
截取特定长度的字符串有两种用法:
- substring(str, pos),即:substring(被截取字符串, 从第几位开始截取)
- substring(str, pos, length),即:substring(被截取字符串,从第几位开始截取,截取长度)
1、从字符串第4个字符开始直结束
SELECT substring('JingLiPoSuo',4);
结果为:LiPoSuo
2、从字符串第4个字符开始,只取2个
SELECT substring('JingLiPoSuo',4,2);
结果为:Li
3、从字符串倒数第4个字符开始直至结束
SELECT substring('JingLiPoSuo',-4);
结果为:oSuo
4、从字符串倒数第4个字符开始,只取2个
SELECT substring('JingLiPoSuo',-4,2);
结果为:oS
四、按关键字进行读取
用法:substring_index(str, delim, count),即:substring_index(被截取字符串,关键字,关键字出现的次数)
1、截取第二个“i”之前的所有字符
SELECT SUBSTRING_INDEX('JingLiPoSuo', 'i', 2);
结果为:JingL
2、截取倒数第二个“i”之后的所有字符
SELECT SUBSTRING_INDEX('JingLiPoSuo', 'i', -2);
结果为:ngLiPoSuo
3、如果关键字不存在,则返回整个字符串
SELECT SUBSTRING_INDEX('JingLiPoSuo', 'zhao', -2);
结果为:JingLiPoSuo