如何在 MySQL 中查找字符串中子字符串首次出现的位置?
mysqlmysqli database更新于 2025/5/16 11:56:17
MySQL LOCATE() 函数可以查找字符串中子字符串首次出现的位置。以下是使用它的语法 −
语法
LOCATE(Substring, String)
在此函数中,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’ 的第一次出现从字符串 ‘RAM IS A GOOD BOY’ 中的第 10 个位置开始。
但是,我们也可以借助另一个表示位置的参数来管理搜索的起点。带有位置参数的 LOCATE() 的语法如下 −
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)
从上面的结果集中,我们可以看到使用位置参数之间的区别。如果我们不使用它,搜索默认从第 1 个位置开始,而当我们在示例中指定 ‘5’ 作为位置参数时,搜索从第 5 个位置开始。
相关文章
有用资源
mysql 参考教程 - 该教程包含有关 mysql 的更多信息:https://www.cainiaomax.com/mysql/
打印
下一节:MySQL CONV() 函数中是否有基数的下限和上限?如果 CONV() 函数中提供的基数超出限制会发生什么? ❯❮ 上一节:什么是 MySQL HEX() 函数?它与 CONV() 函数有何不同?\

