如何更新NULL值?

时间:2019-07-01 17:39:32

标签: mysql

我在表中添加了ENUM列,并且我所有已经存在的行都具有NULL值。唯一的问题是我没有如何选择和升级它们到我需要的东西。

我尝试了类似UPGRADE users Status='User' where Status=NULL之类的东西和其他类似“ ... where Status=''”之类的选择,但是这些都不给我带来解决方案。

我想将每个NULL值更改为'User'。

2 个答案:

答案 0 :(得分:4)

NULL是一个特殊值,在几乎所有常规比较中,如果涉及NULL,则结果为NULL。这不是TRUE,实际上表示FALSE。比较NULL时,您需要的是x IS NULLx IS NOT NULL

也就是说,我通常建议避免使用MySQL的ENUM数据类型。添加新值涉及ALTER TABLE,这涉及重建表。它们也不能与许多用于连接数据库的库“玩得很开心”。并且总体上具有奇怪的语义。通常,使用使用标准数据类型的查找表会更好。

此外,您要查找的语句类型为UPDATE,没有“ UPGRADE”。

答案 1 :(得分:3)

尝试:

UPDATE users
SET    Status = 'User'
WHERE  Status IS NULL;

这是因为NULL是一个特殊值。从概念上讲,NULL表示“缺少未知值”,并且与其他值的处理方式有所不同。要测试NULL,请使用IS NULLIS NOT NULL运算符。