mysql字符串处理函数LOCATE、POSITION、INSTR使用实例

时间:2018-09-20
本文章向大家介绍mysql字符串处理函数,LOCATE,POSITION,INSTR函数都是获取子串 substr在字符串 str中第一次出现的位置,那么他们有什么区别呢?

1.LOCATE函数

LOCATE(substr,str)  返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0。如果substr或str为NULL,则返回NULL。(从1开始)。

例如:

  mysql> SELECT LOCATE('bar', ‘foobarbar'); 
  -> 4 
  mysql> SELECT LOCATE('xbar', ‘foobar'); 
  -> 0 

LOCATE(substr,str,pos)  返回子串 substr 在字符串 str 中的第 pos 位置后第一次出现的位置。如果 substr 不在 str 中返回 0 。如果substr或str为NULL,则返回NULL。

  mysql> SELECT LOCATE('bar', ‘foobarbar',5); 
  -> 7 

2.POSITION函数

POSITION(substr IN str)  等价于 LOCATE(substr,str)。(两者用法完全一样)

3.INSTR函数

INSTR(str,substr)  返回字符串str中第一次出现子字符串substr的位置。 这与LOCATE()的双参数形式相同,只是参数的顺序相反。

示例:

1 SELECT position('a' IN 'banana');   # 2
2 SELECT locate('a', 'banana');       # 2
3 SELECT locate('a', 'banana', 3);    # 4
4 SELECT locate('x', 'banana');       # 0
5 SELECT locate(1, 'banana');         # 0
6 SELECT locate(NULL , 'banana');     # null
7 SELECT locate('a' , NULL );         # null
8 SELECT instr('banana', 'a');        # 2
9 SELECT instr('banana', 'e');        # 0