众所周知,默认情况下,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 返回第一次出现的位置。