Cập nhật có điều kiện kết hợp AND trong MySQL
Sử dụng AND trong mệnh đề WHERE của câu lệnh UPDATE để lọc chính xác bản ghi.
Tạo bảng và dữ liệu
mysql> create table DemoTable1616 (
StudentId int,
StudentName varchar(20),
StudentMarks int
);
Query OK, 0 rows affected (0.44 sec)
mysql> insert into DemoTable1616 values(101,'Chris',56); mysql> insert into DemoTable1616 values(102,'Bob',87); mysql> insert into DemoTable1616 values(103,'David',56); mysql> insert into DemoTable1616 values(101,'Bob',89);
Dữ liệu ban đầu
+-----------+-------------+--------------+ | StudentId | StudentName | StudentMarks | +-----------+-------------+--------------+ | 101 | Chris | 56 | | 102 | Bob | 87 | | 103 | David | 56 | | 101 | Bob | 89 | +-----------+-------------+--------------+
Cập nhật: Đổi tên thành 'Adam' cho StudentId=101 VÀ Marks=56
mysql> update DemoTable1616 set StudentName='Adam'
where StudentId=101 and StudentMarks=56;
Query OK, 1 row affected (0.48 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Kết quả
+-----------+-------------+--------------+ | StudentId | StudentName | StudentMarks | +-----------+-------------+--------------+ | 101 | Adam | 56 | | 102 | Bob | 87 | | 103 | David | 56 | | 101 | Bob | 89 | +-----------+-------------+--------------+
Phân tích: Có 2 bản ghi StudentId=101. Chỉ bản ghi đầu tiên (Marks=56) thỏa mãn CẢ HAI điều kiện nên được cập nhật. Bản ghi thứ 2 (Marks=89) không bị ảnh hưởng.
Ứng dụng: Cập nhật chính xác một bản ghi trong dữ liệu có thể trùng khóa (chưa có PRIMARY KEY).