Posted in MySQL onApril 05, 2021
1.前言
在开发过程中,我们有时候需要对字符串有着特殊处理,比如表示区间的一个字段值为2-10,我们需要取最大值(10)或者最小值(2);在比如说,有场景只想要前五个字符,或者后五个字符。这种情况下,我们首相要想到的是字符串截取函数。
mysql字符串截取函数有SUBSTR(),SUBSTRING(),substring_index();INSTR()
2.SUBSTR()
在上图中我们可以看到substr有四个方法其中1和4作用相同,获取字符串从指定位置长度的字符串,2和3作用相同表示从指定位置到结束。字符串串的起始值都是从1开始的。
其实位置pos的值可以正数,也可以是负数,其中正数表示从字符串从前往后截取,负数表示从后往前截取字符串,
select SUBSTR("mysql sub" ,1)
union all
select SUBSTR("mysql sub" from -3)
union all
select SUBSTR("mysql sub" from -2 for 3)
union all
select SUBSTR("mysql sub", -1,3)
3.SUBSTRING()
该函数的几个方法与SUBSTR相同就不赘述了。
4.SUBSTRING_INDEX
该函数语法就是一个,含义是指定字符str按照分隔符delim,获取第count个分隔符的左边的全部内容。
5.INSTR()
INSTR(str,substr) 函数式找到指定字符串str包含substr的位置,如果找到就返回substr第一次出现的第一个位置,
结合SUBSTRING就可以做到第一次出现的位置,获取两个子串。
select INSTR("2020-11-22","-")
union all
select INSTR("2020-11-22","11")
还可用来进行模糊查询,只要结果大于0表示是有查找到的。即instr(name,str) 等效于name like %str%
两者效率比较
我们函数和全模糊都走不了索引,在百万级别instr要略高于like
mysql字符串截取函数小结
- Author -
采坑先锋声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@