繁体   English   中英

MySQL更新列为空

[英]MySql updating column that is null

我试图更新具有空值的列值。

表:

+------------+-----------+-------+
| product_no | name      | price |
+------------+-----------+-------+
|          1 | Cheese    |  9.99 |
|       NULL | Meat      | 17.00 |
|          2 | Pepperoni |  NULL |
+------------+-----------+-------+

更新:

UPDATE products SET product_no = 6 WHERE product_no = NULL;

输出:

Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

表定义:

+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| product_no | int(11)       | YES  |     | NULL    |       |
| name       | varchar(255)  | YES  |     | NULL    |       |
| price      | decimal(10,2) | YES  |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+

为什么不更新为6

尝试这个:

UPDATE products SET product_no = 6 WHERE product_no is NULL;

NULL值很特殊,请使用:

WHERE product_no IS NULL

要么

WHERE product_no <=> NULL

原因是因为NULL是特殊的。

MySql 指出

要测试NULL,请使用IS NULL和IS NOT NULL运算符...

您不能使用算术比较运算符(例如=,<或<>)测试NULL。

因此:

UPDATE products SET product_no = 6 WHERE product_no IS NULL;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM