Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt đáng kể giữa MySQL LIKE và toán tử bằng (=) là gì?

Chúng ta đã thấy lệnh MySQL SELECT để tìm nạp dữ liệu từ bảng MySQL. Chúng ta cũng có thể sử dụng một mệnh đề điều kiện được gọi là mệnh đề WHERE để chọn các bản ghi được yêu cầu.

Mệnh đề WHERE với dấu 'bằng với' (=) hoạt động tốt khi chúng ta muốn so khớp chính xác. Giống như nếu "tutorial_author ='Sanjay'". Nhưng có thể có một yêu cầu mà chúng tôi muốn lọc ra tất cả các kết quả trong đó tên tutorial_author phải chứa "jay". Điều này có thể được xử lý bằng cách sử dụng toán tử LIKE của MySQL cùng với mệnh đề WHERE.

Nếu toán tử LIKE trong MySQL được sử dụng mà không có ký tự đại diện, thì toán tử LIKE rất giống với dấu bằng cùng với mệnh đề WHERE.

Ví dụ

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)

Ngoài sự khác biệt của việc có các ký tự đại diện,% và _, có một sự khác biệt đáng kể giữa các toán tử LIKE và =là toán tử LIKE không bỏ qua các dấu cách ở cuối trong khi toán tử =bỏ qua các dấu cách ở cuối.

Ví dụ

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)