在不使用 MySQL 中的臨時表的情況下更新列資料?


為此,使用 CASE 語句。即使不使用臨時表,此方法也可行。我們首先建立一個表 -

mysql> create table DemoTable
   -> (
   -> UserName varchar(100),
   -> UserStatus varchar(100)
   -> );
Query OK, 0 rows affected (0.74 sec)

使用 insert 命令在表中插入一些記錄 -

mysql> insert into DemoTable values('John','Active');
Query OK, 1 row affected (0.29 sec)

mysql> insert into DemoTable values('Chris','Inactive');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('Bob','Inactive');
Query OK, 1 row affected (0.32 sec)

mysql> insert into DemoTable values('Robert','Active');
Query OK, 1 row affected (0.15 sec)

使用 select 語句顯示錶中的所有記錄 -

mysql> select *from DemoTable;

輸出

將產生以下輸出 -

+----------+------------+
| UserName | UserStatus |
+----------+------------+
| John     | Active     |
| Chris    | Inactive   |
| Bob      | Inactive   |
| Robert   | Active     |
+----------+------------+
4 rows in set (0.00 sec)

以下查詢使用 CASE 更新列資料 -

mysql> update DemoTable
   -> set UserStatus=CASE UserStatus WHEN 'Inactive' THEN 'Active' ELSE 'Inactive' END;
Query OK, 4 rows affected (0.28 sec)
Rows matched: 4 Changed: 4 Warnings: 0

讓我們再次檢查表記錄 -

mysql> select *from DemoTable;

輸出

將產生以下輸出 -

+----------+------------+
| UserName | UserStatus |
+----------+------------+
| John     | Inactive   |
| Chris    | Active     |
| Bob      | Active     |
| Robert   | Inactive   |
+----------+------------+
4 rows in set (0.00 sec)

更新於: 30-Jun-2020

269 次瀏覽

職業生涯起航

完成課程獲得認證

立即開始
廣告