我试图更新具有空值的列值。
表:
+------------+-----------+-------+
| 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
?
答案 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;