众所周知,默认情况下,LOCATE() 函数中的搜索从开头开始。我们可以通过传递一个参数来管理起始位置,以指定我们想要在字符串中开始搜索的位置。以下示例将演示它 - 例子mysql> Select LOCATE('good','Ram is a good boy. Is Ram a good boy?',11)As Result; +--------+ | Result | +--------+ | 29 | +--------+ 1 row in set (0.00 sec)在上述示例中,我们为位置传递了值 11 作为参数。这意味着 MySQL 将从第 11 个位置开始搜索。
如果子字符串在字符串中出现多次,则 MySQL LOCATE() 函数将返回子字符串第一次出现的位置。例子mysql> Select LOCATE('good','Ram is a good boy. Is Ram a good boy?')As Result; +--------+ | Result | +--------+ | 10 | +--------+ 1 row in set (0.00 sec)正如我们所看到的,子字符串“good”在字符串中出现了两次。第一次出现的位置是 10,另一次出现的位置是 29。MySQL 返回第一次出现的位置。