mysql 字符串操作(持续更新中)
程序员文章站
2022-05-30 09:22:20
...
文章目录
拼接
有分隔符 concat_ws(separator, s1, s2, … )
concat_ws(',', 'hello', 'world', 'u')
结果为:hello,world,u
无分隔符 concat(s1, s2, …)
concat('h1', 'h2', 'u')
结果为:h1h2u
截取
substring(str, pos) 从pos位置开始截取
select substring(name, 10) as alias from tab;
从第10位开始截取name字段内容
substring(str, pos, length)从pos位置开始截取length长度的字符
select substring(name, 10, 100) as alias from tab;
从name字段内容截取第10到100位字符
left|right(str, length) 从左|右截取
select left(name, 10) as alias from tab;
select right(name, 10) as alias from tab;
left:从左开始截取10位
right:从右边开始截取10位
substring_index(str,delim,n) 按关键字截取字符串
(被截取字段,关键字,关键字出现的次数)
若n>0,则从左开始截取第n个关键字delim之前的所有字符
若n<0,则从右边截取第n个关键字delim之后的所有字符
若n=0,则返回空
若关键字不存在,则返回整个字符串
n > 0 从左开始定位关键字,截取0到定位之前的字符串
SELECT id, SUBSTRING_INDEX(id, 'e', 1) AS subId FROM t_result
id | subId |
---|---|
00e54ee200a54eacb82b6b2cd08f57e2 | 00 |
n < 0 从右开始定位关键字,截取定位之后的所有字符串
SELECT id, SUBSTRING_INDEX(id, 'e', -1) AS subId FROM t_result
id | subId |
---|---|
00e54ee200a54eacb82b6b2cd08f57e2 | 2 |
n = 0
SELECT id, SUBSTRING_INDEX(id, 'e', 0) AS subId FROM t_result
id | subId |
---|---|
00e54ee200a54eacb82b6b2cd08f57e2 |