Khi bảng có các bản ghi trùng giá trị trên cột tên (hoặc các cột khác), để lấy chính xác hàng mong muốn, cần kết hợp nhiều điều kiện trong mệnh đề WHERE bằng toán tử AND.
Ví dụ minh họa
Tạo bảng nhân viên:
mysql> CREATE TABLE DemoTable1431 (
EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName VARCHAR(20),
EmployeeCountryName VARCHAR(20)
);
Chèn dữ liệu (có trùng tên 'Chris Brown'):
mysql> INSERT INTO DemoTable1431 (EmployeeName, EmployeeCountryName) VALUES ('Adam Smith', 'AUS');
mysql> INSERT INTO DemoTable1431 (EmployeeName, EmployeeCountryName) VALUES ('Chris Brown', 'US');
mysql> INSERT INTO DemoTable1431 (EmployeeName, EmployeeCountryName) VALUES ('John Doe', 'UK');
mysql> INSERT INTO DemoTable1431 (EmployeeName, EmployeeCountryName) VALUES ('Chris Brown', 'AUS');
Dữ liệu:
mysql> SELECT * FROM DemoTable1431;
+------------+--------------+---------------------+ | EmployeeId | EmployeeName | EmployeeCountryName | +------------+--------------+---------------------+ | 1 | Adam Smith | AUS | | 2 | Chris Brown | US | | 3 | John Doe | UK | | 4 | Chris Brown | AUS | +------------+--------------+---------------------+
Truy vấn chính xác với AND
Lấy nhân viên tên 'Chris Brown' VÀ quốc gia 'AUS':
mysql> SELECT * FROM DemoTable1431
WHERE EmployeeName = 'Chris Brown'
AND EmployeeCountryName = 'AUS';
Kết quả (chỉ 1 hàng):
+------------+--------------+---------------------+ | EmployeeId | EmployeeName | EmployeeCountryName | +------------+--------------+---------------------+ | 4 | Chris Brown | AUS | +------------+--------------+---------------------+
Các kỹ thuật liên quan
| Kỹ thuật | Mô tả |
|---|---|
DISTINCT | Loại bỏ hàng trùng lặp hoàn toàn (tất cả cột giống nhau) |
GROUP BY | Gom nhóm theo cột, thường dùng với hàm tập hợp (COUNT, MAX...) |
ROW_NUMBER() | (MySQL 8.0+) Đánh số thứ tự trong nhóm, lấy hàng đầu tiên |
| Khóa chính / Unique Index | Ngăn chặn trùng lặp ở mức database |
Mẹo: Luôn thiết kế bảng với khóa chính (PRIMARY KEY) để mỗi hàng có định danh duy nhất, tránh khó khăn khi truy xuất/cập nhật/xóa.