MySQL hỗ trợ hai toán tử so sánh "không bằng": <> (chuẩn ANSI SQL) và !=. Hai cái cho kết quả giống nhau.
Cú pháp
SELECT * FROM table_name WHERE column_name <> value;
Hoặc:
SELECT * FROM table_name WHERE column_name != value;
Ví dụ minh họa
mysql> CREATE TABLE NotEqualDemo (ProductId INT); Query OK, 0 rows affected (0.53 sec) mysql> INSERT INTO NotEqualDemo VALUES (101),(102),(103),(104),(105); Query OK, 5 rows affected
Lọc bỏ ProductId = 104:
mysql> SELECT * FROM NotEqualDemo WHERE ProductId <> 104;
Kết quả:
+-----------+ | ProductId | +-----------+ | 101 | | 102 | | 103 | | 105 | +-----------+
Xử lý giá trị NULL
Lưu ý quan trọng: Trong SQL, NULL <> 104 là UNKNOWN (không phải TRUE), nên dòng có NULL không được trả về.
-- Để bao gồm cả NULL: SELECT * FROM NotEqualDemo WHERE ProductId <> 104 OR ProductId IS NULL;
So sánh <> vs !=
| Đặc điểm | <> | != |
|---|---|---|
| Chuẩn SQL | ANSI SQL chuẩn | Mở rộng MySQL |
| Độ tương thích | Tất cả DBMS | MySQL, PostgreSQL, SQL Server |
| Khuyến nghị | Nên dùng cho code portable | OK nếu chỉ dùng MySQL |
Kết luận
Nên dùng <> để tuân thủ chuẩn ANSI SQL và đảm bảo tính di động.