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;

浙公网安备 33010602011771号