Mysql切割字符串

 我们常常会遇到需要处理字段中字符串的需求,包括切割、拼接以及搜索等等,在这里介绍几个常用的切割字符串的函数,首先我们在表格中加入我们的实验字段值:https://www.cnblogs.com/YaoMa/

 

SUBSTRING(str, pos) 从字符串 str 的 pos 位置开始截取往后的全部字符串

SELECT SUBSTR(str,3) FROM str_operate;#从第i个开始往后都取出
SELECT SUBSTR(str,-3) FROM str_operate;#从倒数第i个开始往后都取出

 

 SUBSTRING(str, pos, len) 从字符串 str 的 pos 位置截取长度为 len 的子字符串 

SELECT SUBSTR(str,1,4) FROM str_operate;#从第i个开始往后取n个
SELECT SUBSTR(str,-5,4) FROM str_operate;#从倒数第i个开始往后取n个

 

SUBSTRING_INDEX(str,delim,count) 返回从字符串 str 的第 count 个出现的分隔符 delimiter 之后的子串。

如果 count 是正数,返回第 count 个分隔符前边的字符串。 如果 count 是负数,返回倒数第 count 个分隔符后边的字符串。

SELECT SUBSTRING_INDEX(str,'/',3) FROM str_operate;#从第3个分隔符截取前面的全部字符串
SELECT SUBSTRING_INDEX(str,'/',-2) FROM str_operate;#从倒数第2个分隔符截取后面的全部字符串

 

实验应用

SELECT * FROM str_operate
UNION
SELECT SUBSTRING(str,3) FROM str_operate 
UNION
SELECT SUBSTRING(str,-3) FROM str_operate
UNION
SELECT SUBSTRING(str,1,4) FROM str_operate
UNION
SELECT SUBSTRING(str,-5,4) FROM str_operate;

 

SELECT * FROM str_operate
UNION
SELECT SUBSTRING_INDEX(str,'/',3) FROM str_operate
UNION
SELECT SUBSTRING_INDEX(str,'/',-2) FROM str_operate;

 

Tips

通常我们可以使用SUBSTRING_INDEX(str,delim,count)叠加使用来锁定某个字符串,例如通过以下SQL可以切割出字符串"YaoMa"。

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(str,'/',-2),'/',1) FROM str_operate;

 

posted @ 2023-01-10 20:06  起个数先  阅读(2609)  评论(0)    收藏  举报