赞
踩
在日常项目写MySQL语句的时,常用到的函数,如对字符串截取,子父串关系的匹配等,这里记录下来,方便备查。
substr 是MySQL 自带的字符串截取函数。
基本语法是 substr [str, num, length]
str 目标字符串;
num 截取的起始位置,从 1 开始;
length 待截取的长度,省略则表示字符串的长度。
1)省略第三个参数,则表示展示目标字符串全部
2)起始位置 为 0,不生效,查询结果为空
3)指定起始位置 和 长度,效果如下所示。
substring_index 是MySQL 自带的字符串截取函数,将目标字符串以分隔符来分段,计数count来取第几个。
基本语法是 substring_index [str, delim,count]
str 目标字符串;
delim 分隔符;
count 计数,为正时,从左往右;为负时,从右往左。
1)取 前一部分,即 www,如下图所示。
2)取 域名后缀,如下图所示。
3)取中间部分,即 双层嵌套,如下图所示。
locate 是MySQL 自带的字符串函数,判断一个字符串是否包含另一个字符串,返回出现的位置。
基本语法是 locate [substr, str,num]
str 目标字符串;
substr 子字符串。
num 起始位置,默认为1,可以省略。
1)子串存在于父串,则显示 www 第一次出现的位置,查询结果为 1。
删除前面的www,再次查询则显示第二个匹配到的子串的位置,为11。
2)子串不存在于父串,则显示查询结果为 0。
父串是否包含子串的判断,除了 locate 函数,还有 position 函数 和 instr 函数
position 是MySQL 自带的字符串函数,返回子串第一次出现在父串出现的位置,不区分大小写。
基本语法是 position [substr in str]
str 目标字符串;
substr 子字符串。
1)子串存在于父串,则显示 www 第一次出现的位置,查询结果为 1。
删除前面的www,再次查询则显示第二个匹配到的子串的位置,为11。
2)子串不存在于父串,则显示查询结果为 0。
instr 是MySQL 自带的字符串函数,返回子串首次出现在父串出现的位置,不区分大小写。
基本语法是 instr [str , substr ]
str 目标字符串;
substr 子字符串。
1)子串存在于父串,则显示 www 首次出现的位置,查询结果为 1。
删除前面的www,再次查询则显示第二个匹配到的子串的位置,为11。
2)子串不存在于父串,则显示查询结果为 0。
find_in_set 是MySQL 自带的字符串函数,返回子串在list中的位置,其中list中元素以逗号分隔。
基本语法是 find_in_set [str , strlist ]
str 子字符串;
**strlist ** 字符串list集合,以逗号分隔。
1)子串存在于list,则显示 www 出现的位置,查询结果为 1。
删除前面的www,再次查询则显示匹配到的 按逗号分隔的子串的位置,为4。
2)子串不存在于父串,则显示查询结果为 0。
1)locate函数、position函数 和 instr 函数 的异同
相同之处:子串与父串的匹配过程,匹配成功则返回 子串在父串中第一次匹配到的位置,未匹配到则返回0。
不同之处: 参数的顺序不同,locate 入参是三个变量,可指定开始位置(可省略)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。