您的位置:

mysql获取字符串位置详解

一、LOCATE函数

1、LOCATE函数是mysql中获取字符串位置的函数,它可以获得一个字符串在另一个字符串中第一次出现的位置。

2、LOCATE函数的语法如下:

LOCATE(substr,str,pos)

其中,substr是要查找的字符串;str是待查找的目标字符串;pos是可选参数,指定从目标字符串的哪个位置开始查找。如果省略pos,则从目标字符串的首个字符开始查找;如果指定了pos,则从该位置开始查找。如果substr在str中不存在,返回0。

3、下面是一个使用LOCATE函数的实例:

SELECT LOCATE('world','hello world!'); --返回7

二、INSTR函数

1、INSTR函数与LOCATE函数类似,也可以获得一个字符串在另一个字符串中第一次出现的位置。

2、INSTR函数的语法如下:

INSTR(str,substr)

其中,str是待查找的目标字符串;substr是要查找的字符串。如果substr在str中不存在,返回0。

3、下面是一个使用INSTR函数的实例:

SELECT INSTR('hello world!','world'); --返回7

三、SUBSTRING_INDEX函数

1、SUBSTRING_INDEX函数可以获得一个字符串在另一个字符串中第N次出现的位置。

2、SUBSTRING_INDEX函数的语法如下:

SUBSTRING_INDEX(str,delim,count)

其中,str是待查找的目标字符串;delim是分隔符,表示要分割的字符串;count是可选参数,表示分割的次数,取正数表示从前往后分割,取负数表示从后往前分割。如果count省略,函数默认返回第一个分割的子串。

3、下面是一个使用SUBSTRING_INDEX函数的实例:

SELECT SUBSTRING_INDEX('www.taobao.com.cn','.com',-2); --返回'taobao'

四、REGEXP函数

1、REGEXP函数可以使用正则表达式在目标字符串中查找匹配的字符串。

2、REGEXP函数的语法如下:

expr REGEXP pat

其中,expr是待匹配的目标字符串;pat是正则表达式。如果有匹配,函数返回1;否则返回0。

3、下面是一个使用REGEXP函数的实例:

SELECT 'hello world' REGEXP '^he.*d$'; --返回1

五、CONCAT函数

1、CONCAT函数可以将多个字符串拼接成一个字符串。

2、CONCAT函数的语法如下:

CONCAT(str1,str2,...,strn)

其中,str1~strn是要拼接的字符串。如果其中有一个字符串为NULL,则函数返回NULL。

3、下面是一个使用CONCAT函数的实例:

SELECT CONCAT('goodbye',' ','world','!'); --返回'goodbye world!'

六、CONCAT_WS函数

1、CONCAT_WS函数可以将多个字符串使用指定分隔符拼接成一个字符串。

2、CONCAT_WS函数的语法如下:

CONCAT_WS(delim,str1,str2,...,strn)

其中,delim是分隔符;str1~strn是要拼接的字符串。如果其中有一个字符串为NULL,则函数忽略这个字符串。

3、下面是一个使用CONCAT_WS函数的实例:

SELECT CONCAT_WS(' ','hello','world',NULL,'!'); --返回'hello world !'