Để lọc các hàng có giá trị cột khớp với một giá trị đầu vào cụ thể, dùng mệnh đề WHERE với toán tử so sánh = (hoặc IN cho nhiều giá trị).
Cú pháp
SELECT cot_1, cot_2, ... FROM ten_bang WHERE ten_cot = 'gia_tri_can_tim';
Ví dụ minh họa
Tạo bảng sinh viên - môn học:
mysql> CREATE TABLE DemoTable1528 (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName VARCHAR(20), StudentSubject VARCHAR(20)
-> );
mysql> INSERT INTO DemoTable1528(StudentName,StudentSubject) VALUES
-> ('Chris','MongoDB'), ('Bob','MySQL'), ('David','Java'),
-> ('Carol','C'), ('Sam','Java'), ('Mike','Java'), ('Adam','MySQL');
Truy vấn: Lấy sinh viên học môn 'Java':
mysql> SELECT StudentId, StudentName, StudentSubject
-> FROM DemoTable1528
-> WHERE StudentSubject = 'Java';
Kết quả (3 hàng):
+-----------+-------------+----------------+ | StudentId | StudentName | StudentSubject | +-----------+-------------+----------------+ | 3 | David | Java | | 5 | Sam | Java | | 6 | Mike | Java | +-----------+-------------+----------------+
Mở rộng
- Nhiều giá trị:
WHERE StudentSubject IN ('Java','MySQL'). - Khớp một phần:
WHERE StudentSubject LIKE '%Java%'. - Phân biệt chữ hoa/thường: Mặc định không phân biệt (collation _ci). Muốn phân biệt:
WHERE StudentSubject = 'Java' COLLATE utf8mb4_bin. - Hiệu năng: Tạo index trên
StudentSubjectđể tra cứu nhanh.
Ứng dụng thực tế
- Lọc sản phẩm theo danh mục.
- Tìm đơn hàng theo trạng thái.
- Phân quyền: lấy dữ liệu theo
user_id = ?.