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


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

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

如果在不使用萬用字元的情況下使用 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.