MySQL 的 LOCATE(~)
方法返回 str
中从指定位置 pos
开始的子字符串第一次出现的位置。
参数
1. substr
| string
我们试图在 str
中查找子字符串。
2. str
| string
我们尝试在其中查找子字符串的输入字符串。
3. pos
| number
| optional
搜索的起始位置。默认为 1
。
返回值
返回值取决于以下情况:
案子 |
返回值 |
---|---|
如果 |
|
如果 |
0 |
例子
考虑下表有关一些学生的信息:
student_id |
名称 |
名字 |
day_enrolled |
年龄 |
用户名 |
---|---|---|---|---|---|
1 |
Sky |
Towner |
2015-12-03 |
17 |
stowner1 |
2 |
Ben |
Davis |
2016-04-20 |
19 |
bdavis2 |
3 |
Travis |
Apple |
2018-08-14 |
18 |
tapple3 |
4 |
Arthur |
David |
2016-04-01 |
16 |
adavid4 |
5 |
Benjamin |
Town |
2014-01-01 |
17 |
btown5 |
可以使用此处的代码创建上述示例表。
基本用法
要查找用户名中第一次出现 'd'
的位置:
SELECT username, LOCATE('d', username) AS 'Position of d'
FROM students;
+----------+---------------+
| username | Position of d |
+----------+---------------+
| stowner1 | 0 |
| bdavis2 | 2 |
| tapple3 | 0 |
| adavid4 | 2 |
| btown5 | 0 |
+----------+---------------+
请注意,MySQL 中的位置计数从 1 开始,与其他一些从 0 开始的编程语言不同。
位置参数
要从位置 3
查找用户名中第一次出现 'd'
的位置:
SELECT username, LOCATE('d', username, 3) AS 'Position of d'
FROM students;
+----------+---------------+
| username | Position of d |
+----------+---------------+
| stowner1 | 0 |
| bdavis2 | 0 |
| tapple3 | 0 |
| adavid4 | 6 |
| btown5 | 0 |
+----------+---------------+
请注意,用户名 bdavis2 返回 0,因为 'd'
出现在位置 3 之前。
区分大小写
搜索不区分大小写:
SELECT username, LOCATE('D', username, 3) AS 'Position of D'
FROM students;
+----------+---------------+
| username | Position of D |
+----------+---------------+
| stowner1 | 0 |
| bdavis2 | 0 |
| tapple3 | 0 |
| adavid4 | 6 |
| btown5 | 0 |
+----------+---------------+
即使使用 'D'
(大写字母)作为子字符串,我们仍然在用户名 adavid4
中找到匹配项。
相关用法
- MySQL LOCATE()用法及代码示例
- MySQL LOCALTIME方法用法及代码示例
- MySQL LOCALTIME()用法及代码示例
- MySQL LOCALTIMESTAMP()用法及代码示例
- MySQL LOCALTIMESTAMP方法用法及代码示例
- MySQL LOG()用法及代码示例
- MySQL LOG方法用法及代码示例
- MySQL LOAD_FILE()用法及代码示例
- MySQL LOWER()用法及代码示例
- MySQL LOG10方法用法及代码示例
- MySQL LOG2方法用法及代码示例
- MySQL LOAD_FILE方法用法及代码示例
- MySQL LOG2()用法及代码示例
- MySQL LOWER方法用法及代码示例
- MySQL LOG10()用法及代码示例
- MySQL LEAD() and LAG()用法及代码示例
- MySQL LEFT方法用法及代码示例
- MySQL LPAD方法用法及代码示例
- MySQL LN()用法及代码示例
- MySQL LIKE用法及代码示例
- MySQL LTRIM()用法及代码示例
- MySQL LCASE方法用法及代码示例
- MySQL LTRIM方法用法及代码示例
- MySQL LPAD()用法及代码示例
- MySQL LEAST()用法及代码示例
注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | LOCATE method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。