我正在尝试将表中包含空值的列更新为其他内容。这是我认为它应该是,但它不起作用。
UPDATE `table_name`
SET `column_name` = 'new value'
WHERE `column_name` IS NULL;
编辑:
嗯,它确实最终起作用了。我使用phpMyAdmin“模拟查询”,它告诉我我的语法错误,并在mysql手册中查找。在忽略警告并单击“Go”后,它会按预期更新。抱歉打扰了。答案 0 :(得分:4)
您的列值可能是空字符串,而不是null
。有区别。
UPDATE `table_name`
SET `column_name` = 'new value'
WHERE `column_name` IS NULL
OR `column_name` = "";
答案 1 :(得分:0)
确保您分配给列的值是正确的。如果您有一个int并且正在尝试分配字符串,那么它将无效。
使用属性NOT NULL创建一个新列,并将其默认为您想要的任何内容。然后将旧列中的值复制到新列中,它们不为空。现在,您将拥有一个包含旧列值的新列。可以删除旧列。我遇到过这个问题,列有时会包含损坏的数据。