仅在该字段包含null或0时更新MySQL字段吗?

为此,请使用MySQL设置条件IF()。让我们首先创建一个表-

mysql> create table DemoTable1592
   -> (
   -> StudentMarks int
   -> );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable1592 values(56);
mysql> insert into DemoTable1592 values(NULL);
mysql> insert into DemoTable1592 values(98);
mysql> insert into DemoTable1592 values(0);
mysql> insert into DemoTable1592 values(75);
mysql> insert into DemoTable1592 values(NULL);

使用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);
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)