2016-02-27 59 views
1

我试图用表中的空值更新列到其他东西。这是我认为应该的,但它不起作用。更新列的列设置为空

UPDATE `table_name` 
SET `column_name` = 'new value' 
WHERE `column_name` IS NULL; 

编辑:

嗯,也结束了工作。我使用phpMyAdmin来“模拟查询”,它告诉我我的语法错了,并在mysql手册中查看它。忽略警告后,只需点击“开始”按预期更新。对不起,麻烦了。

+2

为什么它不起作用?最终的结果是什么?它应该顺利运作。 – Rahul

回答

4

您的列值可能是空字符串,而不是null。它们是有区别的。

UPDATE `table_name` 
SET `column_name` = 'new value' 
WHERE `column_name` IS NULL 
OR `column_name` = ""; 
0

确保您分配给列的值是正确的。如果你有一个int并且试图分配一个字符串,它将不起作用。

创建一个新属性为NOT NULL的列,并将其默认为任何你想要的。然后将旧列中的值复制到它们不为空的新列中。现在您将有一个新列,其中包含旧列的值。旧列可以丢弃。我遇到过这个问题,有时候列中有腐败的数据。