MySQL 的 LIKE 運算子和等於 (=) 運算子之間有什麼顯著區別?


我們已經瞭解了用於從 MySQL 表中提取資料的 MySQL SELECT 命令。我們還可以使用稱為 WHERE 子句的條件子句來選擇所需記錄。

當我們需要進行精確匹配時,帶有“等於”符號 (=) 的 WHERE 子句效果很好。例如,“tutorial_author = 'Sanjay'”。但是,我們可能需要篩選所有 tutorial_author 名稱包含“jay”的結果。這可以使用 WHERE 子句結合 MySQL LIKE 運算子來處理。

如果 MySQL LIKE 運算子不使用萬用字元,則 LIKE 運算子與 WHERE 子句一起使用的等於號完全相同。

示例

mysql> Select * from Student Where Name LIKE 'Harshit';
+------+---------+---------+----------+--------------------+
| Id   | Name    | Address | Subject  | year_of_admission  |
+------+---------+---------+----------+--------------------+
| 15   | Harshit | Delhi   | Commerce |       2009         |
+------+---------+---------+----------+--------------------+
1 row in set (0.00 sec)

mysql> Select * from Student Where Name = 'Harshit';
+------+---------+---------+----------+--------------------+
| Id   | Name    | Address | Subject  | year_of_admission  |
+------+---------+---------+----------+--------------------+
| 15   | Harshit | Delhi   | Commerce |      2009          |
+------+---------+---------+----------+--------------------+
1 row in set (0.00 sec)

除了具有萬用字元 % 和 _ 的區別之外,LIKE 和 = 運算子之間的一個顯著區別在於 LIKE 運算子不忽略尾隨空格,而 = 運算子忽略尾隨空格。

示例

mysql> Select * from Student Where Name = 'Harshit ';
+------+---------+---------+----------+--------------------+
| Id   | Name    | Address | Subject  | year_of_admission  |
+------+---------+---------+----------+--------------------+
| 15   | Harshit | Delhi   | Commerce |       2009         |
+------+---------+---------+----------+--------------------+
1 row in set (0.00 sec)

mysql> Select * from Student Where Name LIKE 'Harshit ';
Empty set (0.00 sec)

更新於:2020年2月7日

3K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.