当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL LOCATE方法用法及代码示例


MySQL 的 LOCATE(~) 方法返回 str 中从指定位置 pos 开始的子字符串第一次出现的位置。

参数

1. substr | string

我们试图在 str 中查找子字符串。

2. str | string

我们尝试在其中查找子字符串的输入字符串。

3. pos | number | optional

搜索的起始位置。默认为 1

返回值

返回值取决于以下情况:

案子

返回值

如果 substr 存在于 pos 或之后的 str

substr 第一次出现的位置

如果pos之后的str中不存在substr

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 中找到匹配项。

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | LOCATE method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。