當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。