MySQL LOCATE() 函数使用指南

MySQL LOCATE() 函数返回一个字符串在另一个字符串中第一次出现的位置的数字索引。 LOCATE() 函数是不区分大小写的。 LOCATE() 函数与具有两个参数的 INSTR() 函数的和 POSITION() 功能相同。

LOCATE() 语法

这里是 MySQL LOCATE() 函数的语法:

LOCATE(substr, str)

或者

LOCATE(substr, str, startPos)

参数

substr
必需的。 在 str 中搜索的子串。
str
必需的。 被搜索的字符串。
startPos
可选的。 在 str 中开始搜索的位置,从 1 开始。

返回值

LOCATE() 函数返回子字符串 substr 在字符串 str 中的位置的数字索引。数字索引从 1 开始。如果在 str 中找不到 substrLOCATE() 函数将返回 0

  • 如果 startPos0LOCATE() 函数将返回 0
  • 当任意一个参数为 NULL 时, LOCATE() 函数将返回 NULL

LOCATE() 示例

这里列出了几个常见的 LOCATE() 示例。

SELECT
    LOCATE('He', 'Hello World'),
    LOCATE('he', 'Hello World'),
    LOCATE('wo', 'Hello World'),
    LOCATE('go', 'Hello World'),
    LOCATE(NULL, 'Hello World'),
    LOCATE('l', 'Hello World'),
    LOCATE('l', 'Hello World', 0),
    LOCATE('l', 'Hello World', 1),
    LOCATE('l', 'Hello World', 6)\G
*************************** 1. row ***************************
  LOCATE('He', 'Hello World'): 1
  LOCATE('he', 'Hello World'): 1
  LOCATE('wo', 'Hello World'): 7
  LOCATE('go', 'Hello World'): 0
  LOCATE(NULL, 'Hello World'): NULL
   LOCATE('l', 'Hello World'): 3
LOCATE('l', 'Hello World', 0): 0
LOCATE('l', 'Hello World', 1): 3
LOCATE('l', 'Hello World', 6): 10

这里,请注意 LOCATE('l', 'Hello World', 0) 的返回值为 0