您的位置:首页 > 教育 > 锐评 > mysql中字符串截取与拆分

mysql中字符串截取与拆分

2024/10/7 2:27:13 来源:https://blog.csdn.net/m0_68207804/article/details/140125282  浏览:    关键词:mysql中字符串截取与拆分

截取字符串

一、left(str,length)

从左边截取字符串,参数str:被截取的字符串,length:截取的长度

SELECT LEFT('程序不是年轻的专利,但是,他属于年轻。',9);

二、right(str,length)

从右边截取字符串,参数str:被截取的字符串,length:截取的长度

SELECT RIGHT('程序不是年轻的专利,但是,他属于年轻。',9);

 三、截取特定长度的字符串

有两种用法: substring(str,pos)
参数str:被截取的字符串,pos从第几位开始截取,当为正数时从左开始数,当为负数时,从右开始数,从第几位开始截取,直至字符串结束;
substring(str,pos,length)
参数str:被截取的字符串,pos从第几位开始截取,当为正数时从左开始数,当为负数时,从右开始数,从第几位开始截取,向右截取length个字符。

1.从字符串第n个字符开始到结束

SELECT SUBSTRING('程序不是年轻的专利,但是,他属于年轻。',3);

 

2.从字符串第3个字符开始,只截取7位 

SELECT SUBSTRING('程序不是年轻的专利,但是,他属于年轻。',3,7);

3.从字符串倒数第6个字符开始至结束 

SELECT SUBSTRING('程序不是年轻的专利,但是,他属于年轻。',-6);

4.从字符串倒数第3个字符开始,只截取2位

SELECT SUBSTRING('程序不是年轻的专利,但是,他属于年轻。',-6,2);

 

四、按分隔符截取 

SUBSTRING_INDEX(str,delim,count)
参数str:被截取的字符串;
参数delim:分隔符;
参数count:第几个分隔符,为正数时,截取从左往右第几个分隔符左边的内容,为负数时,截取从右往左第几个分隔符右边的内容。

1.截取第1个 "-"之前的所有字符

SELECT SUBSTRING_INDEX('100-200-300-400', '-', 1);

 

2.截取倒数第1个"-"之后的所有字符

SELECT SUBSTRING_INDEX('100-200-300-400', '-', -1);

 

3.截取中间的某个值

比如说要取100-200-300-400 的第二个,可以先取count为2的,再从右取count为-1

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('100-200-300-400', '-', 2),'-', -1);

 4.如果指定的分隔符找不到则返回整个字符串

SELECT SUBSTRING_INDEX('100-200-300-400', '-', 5);