UPDATE với nhiều điều kiện trong mệnh đề WHERE
Sử dụng toán tử AND để kết hợp nhiều điều kiện lọc chính xác bản ghi cần cập nhật.
Tạo bảng và dữ liệu
mysql> create table DemoTable (
Id int,
Name varchar(20),
Age int,
CountryName varchar(10)
);
Query OK, 0 rows affected (0.81 sec)
mysql> insert into DemoTable values(100,'Chris',34,'AUS'); mysql> insert into DemoTable values(101,'Chris',31,'US'); mysql> insert into DemoTable values(102,'David',25,'UK'); mysql> insert into DemoTable values(103,'Carol',28,'AUS');
Dữ liệu ban đầu
+------+-------+------+-------------+ | Id | Name | Age | CountryName | +------+-------+------+-------------+ | 100 | Chris | 34 | AUS | | 101 | Chris | 31 | US | | 102 | David | 25 | UK | | 103 | Carol | 28 | AUS | +------+-------+------+-------------+
Cập nhật: Đổi tên thành 'Robert' cho người 31 tuổi ở US
mysql> update DemoTable
-> set Name='Robert'
-> where Age=31 and CountryName='US';
Query OK, 1 row affected (0.44 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Kết quả
+------+--------+------+-------------+ | Id | Name | Age | CountryName | +------+--------+------+-------------+ | 100 | Chris | 34 | AUS | | 101 | Robert | 31 | US | | 102 | David | 25 | UK | | 103 | Carol | 28 | AUS | +------+--------+------+-------------+
Lưu ý: Chỉ bản ghi Id=101 thỏa mãn cả hai điều kiện (Age=31 VÀ CountryName='US') nên được cập nhật. Bản ghi Id=100 cũng tên Chris nhưng 34 tuổi, ở AUS nên không bị ảnh hưởng.