更新列中所有行的列,并将列设置为null

时间:2016-02-27 14:14:54

标签: mysql sql

我正在尝试将表中包含空值的列更新为其他内容。这是我认为它应该是,但它不起作用。

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

编辑:

嗯,它确实最终起作用了。我使用phpMyAdmin“模拟查询”,它告诉我我的语法错误,并在mysql手册中查找。在忽略警告并单击“Go”后,它会按预期更新。抱歉打扰了。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

确保您分配给列的值是正确的。如果您有一个int并且正在尝试分配字符串,那么它将无效。

使用属性NOT NULL创建一个新列,并将其默认为您想要的任何内容。然后将旧列中的值复制到新列中,它们不为空。现在,您将拥有一个包含旧列值的新列。可以删除旧列。我遇到过这个问题,列有时会包含损坏的数据。