在MySQL中如何找到字符串中第一次出现子字符串的位置?
MySQLLOCATE()
函数使查找字符串中第一次出现的子字符串的位置成为可能。以下是使用它的语法-
语法
LOCATE(Substring, String)
在此函数中,“子字符串”是需要查找其出现位置的字符串,并且该字符串是需要从中搜索子字符串的出现的字符串。
我们必须同时传递字符串(即要搜索的子字符串和要从其搜索子字符串的字符串)作为函数的参数LOCATE()
。
示例
mysql> Select LOCATE('Good','RAM IS A GOOD BOY')As Result; +--------+ | Result | +--------+ | 10 | +--------+ 1 row in set (0.00 sec)
在上面的示例中,输出为10,因为第一次出现的子字符串“good”从字符串“RAMISAGOODBOY”的第10个位置开始。
但是,我们也可以借助另一个表示位置的参数来管理搜索的起点。LOCATE()
withposition参数的语法如下:
LOCATE(Substring, String, position)
示例
mysql> Select LOCATE('Good','Good, RAM IS A GOOD BOY')As Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec) mysql> Select LOCATE('Good','Good, RAM IS A GOOD BOY',5)As Result; +--------+ | Result | +--------+ | 16 | +--------+ 1 row in set (0.00 sec)
从上面的结果集中,我们可以看到使用position参数的区别。如果不使用它,则默认情况下,搜索从第1位置开始,而在我们的示例中将“5”指定为position参数时,搜索从第5个位置开始。