如何通过交换两个列的值来更新MySQL表?
要交换列中的两个值,请使用CASE WHEN语句。让我们首先创建一张表—
mysql> create table DemoTable1382
-> (
-> StudentName varchar(20)
-> );
Query OK, 0 rows affected (0.57 sec)
使用insert命令在表中插入一些记录—
mysql> insert into DemoTable1382 values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1382 values('Chris');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1382 values('Adam');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1382 values('Bob');
Query OK, 1 row affected (0.17 sec)
使用select语句显示表中的所有记录—
mysql> select * from DemoTable1382;
这将产生以下输出—
+-------------+
| StudentName |
+-------------+
| John |
| Chris |
| Adam |
| Bob |
+-------------+
4 rows in set (0.00 sec)
以下是通过交换两个列的值来更新MySQL表的查询语句—
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)
Rows matched: 4 Changed: 2 Warnings: 0
让我们再次检查表中的记录—
mysql> select * from DemoTable1382;
这将产生以下输出—
+-------------+
| StudentName |
+-------------+
| Chris |
| John |
| Adam |
| Bob |
+-------------+
4 rows in set (0.00 sec)
阅读更多:MySQL 教程
极客教程