Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cập nhật với nhiều giá trị trong mệnh đề WHERE MySQL

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.