MySQL 字符串操作:常用内置函数使用以及字符串切割和提取操作

MySQL 字符串函数

一、子串相关

1.INSTR

判断某个字符串是否包含某个特定的字符串:

SELECT INSTR(target, template)

如果这个字串出现在目标字符串中,则返回该字串第一个字符在目标字符串中的位置:

SELECT INSTR('annie', 'i')
-- 结果:3
SELECT INSTR('annie', 'k')
-- 结果:0

2. SUBSTR

获取目标字符串从指定下标位置开始指定长度的子串,例如:

SELECT SUBSTR('annie', 0, 3) as sub
-- result: 'ann'

另外,也可以通过 from 选项指定开始位置,得到从指定开始位置到字符串末尾的子串,例如:

SELECT SUBSTR('annie' from -2)

得到的结果为 'ie',为最后两位字符

3. SUBSTRING_INDEX

获取在字符串中,第 n 个匹配字串之前或者之后的整段字符串,其中:

  • n > 0 n>0 n>0 时,则取从前往后第 n 个匹配项之前的所有部分
  • n < 0 n<0 n<0 时,则取从后往前第 n 个匹配项之后的所有部分

例如:

SELECT SUBSTRING_INDEX('jason stands by annie', ' ', 1)
-- 返回第一个空格前的字符串
-- 结果: jason
SELECT SUBSTRING_INDEX('jason stands by annie', ' ', -1)
-- 返回最后一个空格后的所有字符串
-- return 'annie'
SELECT SUBSTRING_INDEX(substring_index('jason stands by annie', ' annie', 1), 'jason ', -1)
-- 返回 'annie' 之前,'jason' 之后的字符串,
-- return 'stands by'

4. LENGTH

返回字符串的长度,例如:

SELECT length('annie')
-- 5

二、字符串拼接

1. CONCAT

sql 中的字符串拼接可以通过 CONCAT 方法实现,可以拼接 2 2 2 个以上的字符串:

SELECT CONCAT('json', 'and', 'annie')
-- 结果: json and annie

2. GROUP_CONCAT

如果需要在进行 GROUP BY 操作的时候,把某个字符类型的字段的一组值聚合起来,指定相应的分隔字符,就可以通过 GROUP_CONCAT 这个函数,在分组聚合过程中使用,例如希望把查出来的地理位置用 '->' 连接起来,得到某位用户的轨迹,则可以:

SELECT 
userName, 
GROUP_CONCAT(geoPos SEPARATOR BY '->') as trace 
FROM userGeoPosInfo
GROUP BY userName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值