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

Cập nhật bảng MySQL: Hoán đổi giá trị của hai cột (hoặc hai giá trị trong cùng cột)

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable1382 (
    -> StudentName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.57 sec)
mysql> INSERT INTO DemoTable1382 VALUES('John');
mysql> INSERT INTO DemoTable1382 VALUES('Chris');
mysql> INSERT INTO DemoTable1382 VALUES('Adam');
mysql> INSERT INTO DemoTable1382 VALUES('Bob');

Dữ liệu trước khi hoán đổi

mysql> SELECT * FROM DemoTable1382;
+-------------+
| StudentName |
+-------------+
| John        |
| Chris       |
| Adam        |
| Bob         |
+-------------+

Cập nhật dùng CASE WHEN để hoán đổi 'John' và 'Chris'

mysql> UPDATE DemoTable1382
    -> SET StudentName = CASE
    ->   WHEN StudentName = 'Chris' THEN 'John'
    ->   WHEN StudentName = 'John'  THEN 'Chris'
    ->   ELSE StudentName
    -> END;
Query OK, 2 rows affected (0.19 sec)

Kết quả sau hoán đổi

mysql> SELECT * FROM DemoTable1382;
+-------------+
| StudentName |
+-------------+
| Chris       |
| John        |
| Adam        |
| Bob         |
+-------------+

Mẹo: Cách này an toàn vì đánh giá tất cả điều kiện trước khi gán, tránh ghi đè lẫn nhau.