我在表中添加了枚举列,并且我所有已经存在的行都有无效的值。唯一的问题是我没有如何选择和升级它们到我需要的东西。
我尝试了诸如UPGRADE users Status='User' where Status=NULL
之类的东西和其他选项,例如" ... where Status=''
",但这些都没有带给我解决方案。
我想将每个零值更改为"用户"。
null是一个特殊的值,在几乎所有正常的比较中,如果涉及null,则结果为null;这不是真的,这意味着有效的错误。比较null时,您需要是x IS NULL
或x IS NOT NULL
。
也就是说,我通常建议避免MySQL的枚举数据类型。添加新值涉及变更表,该表涉及重建表。他们也不会与许多用于连接到数据库的库"播放"。并具有一般的语义。通常,使用标准数据类型查找表,您通常会更好。
另外,您要寻找的语句类型是UPDATE
,没有"升级"。
尝试:
UPDATE users
SET Status = 'User'
WHERE Status IS NULL;
这是因为空是一个特殊的值。从概念上讲,无效的意思是"缺失的未知值",并且与其他值的对待有所不同。要测试NULL,请使用IS NULL
和IS NOT NULL
操作员。