MySql更新列为null

时间:2015-07-14 00:40:27

标签: mysql

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

表:

+------------+-----------+-------+
| 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

3 个答案:

答案 0 :(得分:1)

试试这个:

UPDATE products SET product_no = 6 WHERE product_no is NULL;

答案 1 :(得分:0)

NULL值很特殊,请使用:

WHERE product_no IS NULL

WHERE product_no <=> NULL

答案 2 :(得分:0)

原因是因为NULL很特殊。

MySql states

  

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

     

您不能使用算术比较运算符,例如=,&lt;或&lt;&gt;测试NULL。

因此:

UPDATE products SET product_no = 6 WHERE product_no IS NULL;