在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些,mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结:left()、right()、substring()、substring_index()。
语法:
LEFT(str,len)
Returns the leftmost len characters from the string str, or NULL if any argument is NULL.
返回从字符串str最左边的len个字符,如果任一参数为null则返回null。
RIGHT(str,len)
Returns the rightmost len characters from the string str, or NULL if any argument is NULL.
返回从字符串str最右边的len个字符,如果任一参数为null则返回null。
实例如下:
SELECT left('www.baidu.com', 3); # www
SELECT left(NULL , 4); # null
SELECT left('www.baidu.com', NULL); # null
SELECT right('www.baidu.com', 3); # com
SELECT right(NULL , 3); # null
SELECT right('www.baidu.com', NULL ); # null
以下为详细介绍:
一、left()函数
从左开始截取字符串
用法:left(str, length),即:left(被截取字符串, 截取长度)
SELECT LEFT('www.baidu.com',8)
结果为:www.baid
二、right()函数
从右开始截取字符串
用法:right(str, length),即:right(被截取字符串, 截取长度)
SELECT RIGHT('www.baidu.com',6)
结果为:du.com
三、substring()函数
截取特定长度的字符串
用法:
substring(str, pos),即:substring(被截取字符串, 从第几位开始截取)
substring(str, pos, length),即:substring(被截取字符串,从第几位开始截取,截取长度)
1.从字符串的第7个字符开始读取直至结束
SELECT SUBSTRING('www.baidu.com', 8)
结果为:du.com
2.从字符串的第8个字符开始,只取4个字符
SELECT SUBSTRING('www.baidu.com', 8, 4)
结果为:du.c
3.从字符串的倒数第6个字符开始读取直至结束
SELECT SUBSTRING('www.baidu.com', -6)
结果为:du.com
4.从字符串的倒数第6个字符开始读取,只取2个字符
SELECT SUBSTRING('www.baidu.com', -6, 2)
结果为:du
四、substring_index()函数
按关键字进行读取
用法:substring_index(str, delim, count),即:substring_index(被截取字符串,关键字,关键字出现的次数)
1.截取第二个“.”之前的所有字符
SELECT SUBSTRING_INDEX('www.baidu.com', '.', 2);
结果为:www.baidu
2.截取倒数第二个“.”之后的所有字符
SELECT SUBSTRING_INDEX('www.baidu.com', '.', -2);
结果为:baidu.com
3.如果关键字不存在,则返回整个字符串
SELECT SUBSTRING_INDEX('www.baidu.com', 'hero', 1);
结果为:www.baidu.com
完结!