SQL截取字符串和替换字段

技术博客 (155) 2023-09-16 10:44:51

1.要操作的数据库的表

SQL截取字符串和替换字段 (https://mushiming.com/) 技术博客 第1张

2. SELECT left(operateperson,2) from bus_inport

left(str,length)

str:被截取的字符串。
length:截取的长度

从左边开始截取

执行的结果:

SQL截取字符串和替换字段 (https://mushiming.com/) 技术博客 第2张

3. SELECT right(operateperson,1) from bus_inport

right(str,length)

str:被截取的字符串。
length:截取的长度

从右边开始截取

执行结果:

SQL截取字符串和替换字段 (https://mushiming.com/) 技术博客 第3张

4.select substring(operateperson,1) as aa from bus_inport

substring(str,length)

str:要执行的字段

length:截取的长度

执行结果:

SQL截取字符串和替换字段 (https://mushiming.com/) 技术博客 第4张

5. substring(str, pos, length)

str:被截字符串
pos:开始的位置
length:截取的 长度

SELECT SUBSTRING('12345678', 3,2)

    1

结果:34
在这里插入图片描述
如果 POS 为负数,开始位置从右侧开始数,向右取子串

SELECT SUBSTRING('87654321', -3,2)

    1

结果:32
在这里插入图片描述

6. 按分隔符截取 substring_index(str, delim, count)

str:被截字符串
delim:分隔符
count:第几个分隔符。正数:取左侧第N个分隔符左侧的子串;负数:取右侧第N个分隔符右侧的子串;

SELECT SUBSTRING_INDEX('1-2-3-4-5-6-7', '-', 2);

    1

结果:1-2
在这里插入图片描述

SELECT SUBSTRING_INDEX('1-2-3-4-5-6-7', '-', -2);

    1

结果:6-7
在这里插入图片描述
如果被截字符串里找不到分隔符,返回整个字符串

SELECT SUBSTRING_INDEX('1-2-3-4-5-6-7', '%', -2);

    1

结果:1-2-3-4-5-6-7

7.替换SQL语句

(1)替换查询

select *,replace(operateperson,'张三','管理员') AS operate from bus_inport

执行结果:

SQL截取字符串和替换字段 (https://mushiming.com/) 技术博客 第5张

(2)替换修改

update bus_inport set operateperson=replace(operateperson,'管理员','张三') ,remark=replace(remark,'张三,春天来了','张三')

 SQL截取字符串和替换字段 (https://mushiming.com/) 技术博客 第6张

 

THE END

发表回复