在mysql中,可以利用“SELECT”語句和LIKE關(guān)鍵字來查詢包含指定字符串的數(shù)據(jù),LIKE關(guān)鍵字主要用于搜索匹配字段中的指定內(nèi)容,語法“SELECT 字段名 FROM 表名 WHERE 字段名 [NOT] LIKE '字符串';”。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
在mysql中,可以利用“SELECT”語句和LIKE關(guān)鍵字來查詢包含指定字符串的數(shù)據(jù)。
LIKE 關(guān)鍵字主要用于搜索匹配字段中的指定內(nèi)容。其語法格式如下:
[NOT] LIKE '字符串'
其中:
-
NOT :可選參數(shù),字段中的內(nèi)容與指定的字符串不匹配時(shí)滿足條件。
-
字符串:指定用來匹配的字符串?!白址笨梢允且粋€(gè)很完整的字符串,也可以包含通配符。
LIKE 關(guān)鍵字支持百分號(hào)“%”和下劃線“_”通配符。
通配符是一種特殊語句,主要用來模糊查詢。當(dāng)不知道真正字符或者懶得輸入完整名稱時(shí),可以使用通配符來代替一個(gè)或多個(gè)真正的字符。
“SELECT”語句+LIKE關(guān)鍵字的使用實(shí)例
帶有“%
”通配符的查詢
“%”是 MySQL 中最常用的通配符,它能代表任何長度的字符串,字符串的長度可以為 0。例如,a%b表示以字母 a 開頭,以字母 b 結(jié)尾的任意長度的字符串。該字符串可以代表 ab、acb、accb、accrb 等字符串。
例 1
在 tb_students_info 表中,查找所有以字母“T”開頭的學(xué)生姓名,SQL 語句和運(yùn)行結(jié)果如下。
mysql> SELECT name FROM tb_students_info -> WHERE name LIKE 'T%'; +--------+ | name | +--------+ | Thomas | | Tom | +--------+ 2 rows in set (0.12 sec)
可以看到,查詢結(jié)果中只返回了以字母“T”開頭的學(xué)生姓名。
注意:匹配的字符串必須加單引號(hào)或雙引號(hào)。
NOT LIKE
表示字符串不匹配時(shí)滿足條件。
例 2
在 tb_students_info 表中,查找所有不以字母“T”開頭的學(xué)生姓名,SQL 語句和運(yùn)行結(jié)果如下。
mysql> SELECT NAME FROM tb_students_info -> WHERE NAME NOT LIKE 'T%'; +-------+ | NAME | +-------+ | Dany | | Green | | Henry | | Jane | | Jim | | John | | Lily | | Susan | +-------+ 8 rows in set (0.00 sec)
可以看到,查詢結(jié)果中返回了不以字母“T”開頭的學(xué)生姓名。
例 3
在 tb_students_info 表中,查找所有包含字母“e”的學(xué)生姓名,SQL 語句和運(yùn)行結(jié)果如下。
mysql> SELECT name FROM tb_students_info -> WHERE name LIKE '%e%'; +-------+ | name | +-------+ | Green | | Henry | | Jane | +-------+ 3 rows in set (0.00 sec)
可以看到,查詢結(jié)果中返回了所有包含字母“e”的學(xué)生姓名。
帶有“_
”通配符的查詢
“_”只能代表單個(gè)字符,字符的長度不能為 0。例如,a_b可以代表 acb、adb、aub 等字符串。
例 4
在 tb_students_info 表中,查找所有以字母“y”結(jié)尾,且“y”前面只有 4 個(gè)字母的學(xué)生姓名,SQL 語句和運(yùn)行結(jié)果如下。
mysql> SELECT name FROM tb_students_info -> WHERE name LIKE '____y'; +-------+ | name | +-------+ | Henry | +-------+ 1 row in set (0.00 sec)
LIKE 區(qū)分大小寫
默認(rèn)情況下,LIKE 關(guān)鍵字匹配字符的時(shí)候是不區(qū)分大小寫的。如果需要區(qū)分大小寫,可以加入 BINARY 關(guān)鍵字。
例 5
在 tb_students_info 表中,查找所有以字母“t”開頭的學(xué)生姓名,區(qū)分大小寫和不區(qū)分大小寫的 SQL 語句和運(yùn)行結(jié)果如下。
mysql> SELECT name FROM tb_students_info WHERE name LIKE 't%'; +--------+ | name | +--------+ | Thomas | | Tom | +--------+ 2 rows in set (0.00 sec) mysql> SELECT name FROM tb_students_info WHERE name LIKE BINARY 't%'; Empty set (0.01 sec)
由結(jié)果可以看到,區(qū)分大小寫后,“Tom”和“Thomas”等記錄就不會(huì)被匹配到了。
【