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


MySQL LIKE用法及代碼示例


MySQL 的 LIKE 運算符可用於搜索具有特定字符串模式的值。我們可以將兩個通配符與LIKE 運算符一起使用:%(百分比)和_(下劃線)。

通配符

說明

%

代替零個、一個或多個字符

_

代替一個角色

用法

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE value;

例子

考慮下表有關一些學生的信息:

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

可以使用此處的代碼創建上述示例表。

百分比通配符

要返回 lname'Dav' 開頭的所有學生:

SELECT * FROM students WHERE lname LIKE 'Dav%';



+------------+--------+-------+--------------+------+----------+
| student_id | fname  | lname | day_enrolled | age  | username |
+------------+--------+-------+--------------+------+----------+
|          2 | Ben    | Davis | 2016-04-20   |   19 | bdavis2  |
|          4 | Arthur | David | 2016-04-01   |   16 | adavid4  |
+------------+--------+-------+--------------+------+----------+

請注意, % 表示 'Dav' 之後的任意數量的字符。

要返回包含 'dav' 的所有 usernames

SELECT * FROM students WHERE username LIKE '%dav%';



+------------+--------+-------+--------------+------+----------+
| student_id | fname  | lname | day_enrolled | age  | username |
+------------+--------+-------+--------------+------+----------+
|          2 | Ben    | Davis | 2016-04-20   |   19 | bdavis2  |
|          4 | Arthur | David | 2016-04-01   |   16 | adavid4  |
+------------+--------+-------+--------------+------+----------+

% 放在開頭和結尾允許雙端搜索。

LIKE 不是包含的同義詞。例如:

SELECT * FROM students WHERE lname LIKE 'Dav';



Empty set (0.00 sec)

即使姓氏 'Davis''David' 包含 'Dav' ,如果沒有通配符,也不會返回它們。

下劃線通配符

要返回名字以 'S' 開頭並以 'y' 結尾的三個字母的學生:

SELECT * FROM students WHERE fname LIKE 'S_y';



+------------+-------+--------+--------------+------+----------+
| student_id | fname | lname  | day_enrolled | age  | username |
+------------+-------+--------+--------------+------+----------+
|          1 | Sky   | Towner | 2015-12-03   |   17 | stowner1 |
+------------+-------+--------+--------------+------+----------+

這裏,三個字符fname中的第二個字符可以是任何內容。但是,第一個字符必須是 'S' ,第三個字符必須是 'y'

組合通配符

要返回 username 的第二個字符為 't' 的學生:

SELECT * FROM students WHERE username LIKE '_t%';



+------------+----------+--------+--------------+------+----------+
| student_id | fname    | lname  | day_enrolled | age  | username |
+------------+----------+--------+--------------+------+----------+
|          1 | Sky      | Towner | 2015-12-03   |   17 | stowner1 |
|          5 | Benjamin | Town   | 2014-01-01   |   17 | btown5   |
+------------+----------+--------+--------------+------+----------+

相關用法


注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | LIKE。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。