首頁  >  文章  >  資料庫  >  mysql怎麼查詢包含指定字串的數據

mysql怎麼查詢包含指定字串的數據

青灯夜游
青灯夜游原創
2022-01-05 16:23:4125068瀏覽

在mysql中,可以利用「SELECT」語句和LIKE關鍵字來查詢包含指定字串的數據,LIKE關鍵字主要用於搜尋符合欄位中的指定內容,語法「SELECT 欄位名稱FROM 表名WHERE 欄位名[NOT] LIKE '字串';」。

mysql怎麼查詢包含指定字串的數據

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

在mysql中,可以利用「SELECT」語句和LIKE關鍵字來查詢包含指定字串的資料。

LIKE 關鍵字主要用於搜尋符合欄位中的指定內容。其語法格式如下:

[NOT] LIKE  '字符串'

其中:

  • NOT :可選參數,欄位中的內容與指定的字串不符時滿足條件。

  • 字串:指定用來匹配的字串。 「字串」可以是一個很完整的字串,也可以包含通配符。

LIKE 關鍵字支援百分號「%」和底線「_」通配符。

通配符是一種特殊語句,主要用來模糊查詢。當不知道真正字元或懶得輸入完整名稱時,可以使用通配符來取代一個或多個真正的字元。

「SELECT」語句LIKE關鍵字的使用實例

有「%」通配符的查詢

「%」是MySQL 中最常用的通配符,它​​能代表任何長度的字串,字串的長度可以為0。例如,a%b表示以字母 a 開頭,以字母 b 結尾的任意長度的字串。該字串可以代表 ab、acb、accb、accrb 等字串。

範例 1

在 tb_students_info 表中,找出所有以字母「T」開頭的學生姓名,SQL 語句和運行結果如下。

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE 'T%';
+--------+
| name   |
+--------+
| Thomas |
| Tom    |
+--------+
2 rows in set (0.12 sec)

可以看到,查詢結果中只回傳了以字母「T」開頭的學生姓名。

注意:符合的字串必須加上單引號或雙引號。

NOT LIKE 表示字串不符時滿足條件。

範例 2

在 tb_students_info 表中,找出所有不以字母「T」開頭的學生姓名,SQL 語句和運行結果如下。

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)

可以看到,查詢結果中傳回了不以字母「T」開頭的學生姓名。

範例 3

在 tb_students_info 表中,找出所有包含字母「e」的學生姓名,SQL 語句和運行結果如下。

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE '%e%';
+-------+
| name  |
+-------+
| Green |
| Henry |
| Jane  |
+-------+
3 rows in set (0.00 sec)

可以看到,查詢結果中傳回了所有包含字母「e」的學生姓名。

有「_」通配符的查詢

「_」只能代表單一字符,字符的長度不能為0。例如,a_b可以代表 acb、adb、aub 等字串。

例4

在tb_students_info 表中,找出所有以字母「y」結尾,且「y」前面只有4 個字母的學生姓名,SQL 語句和運行結果如下。

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE '____y';
+-------+
| name  |
+-------+
| Henry |
+-------+
1 row in set (0.00 sec)

LIKE 區分大小寫

#預設情況下,LIKE 關鍵字符合字元的時候是不區分大小寫的。如果需要區分大小寫,可以加入 BINARY 關鍵字。

範例5

在tb_students_info 表中,找出所有以字母「t」開頭的學生姓名,區分大小寫和不區分大小寫的SQL 語句和運行結果如下。

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)

由結果可以看到,區分大小寫後,「Tom」和「Thomas」等記錄就不會被配對到了。

【相關推薦:mysql影片教學

#

以上是mysql怎麼查詢包含指定字串的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn