僅當欄位包含 null 或 0 時才更新 MySQL 欄位?


為此,使用 MySQL IF() 設定條件。我們首先建立一個表 -

mysql> create table DemoTable1592
   -> (
   -> StudentMarks int
   -> );
Query OK, 0 rows affected (0.76 sec)

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

mysql> insert into DemoTable1592 values(56);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1592 values(NULL);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1592 values(98);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1592 values(0);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1592 values(75);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1592 values(NULL);
Query OK, 1 row affected (0.11 sec)

使用 select 語句從表中顯示所有記錄 -

mysql> select * from DemoTable1592;

這會生成以下輸出 -

+--------------+
| StudentMarks |
+--------------+
|           56 |
|         NULL |
|           98 |
|            0 |
|           75 |
|         NULL |
+--------------+
6 rows in set (0.00 sec)

以下是僅在欄位包含 null 或 0 時才更新欄位的查詢 -

mysql> update DemoTable1592 set StudentMarks=if(StudentMarks IS NULL or StudentMarks=0,33,StudentMarks);
Query OK, 3 rows affected (0.17 sec)
Rows matched: 6  Changed: 3 Warnings: 0

讓我們再次檢查表記錄 -

mysql> select * from DemoTable1592;

這會生成以下輸出 -

+--------------+
| StudentMarks |
+--------------+
|           56 |
|           33 |
|           98 |
|           33 |
|           75 |
|           33 |
+--------------+
6 rows in set (0.00 sec)

更新於: 16-Dec-2019

161 瀏覽量

開啟你的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.