SQL - 如果列条目等于 NULL,则将其设置为 0?

SQL - Setting column entry to 0 if it equals NULL?

所以在我的 table 中,我有一列看起来像这样:

45
NULL 
234234
123
NULL  
NULL 
75

我想将所有 NULL 值设置为 0

45
0 
234234
123
0 
0 
75

我试过这个:

UPDATE TABLE comm_call_count c 
SET c.messageCountFri = 0 
WHERE c.messageCountFri = NULL; 

然后我尝试了这个:

UPDATE TABLE comm_call_count c 
SET c.messageCountFri = IFNULL(c.messageCountFri,0); 

但都没有用。我该怎么做?

null 不是一个值,而是缺少值。因此,您不能使用旨在比较值的运算符(例如 =!=)对其进行评估。相反,您需要使用 is 运算符明确检查它。另请注意,语法是 update <table name>,而不是 update table <table name>:

UPDATE comm_call_count c 
SET    c.messageCountFri = 0 
WHERE  c.messageCountFri IS NULL; 

尝试从您的 UPDATE 语句中删除关键字 TABLE。我认为那是不允许的。 (我从不在这样的更新中使用 TABLE 这个词。)

似乎会引发特定错误,而不仅仅是 "not work"。

或许试试:

WHERE c.messageCountFri is NULL;  

这听起来很简单,但请确保您的字段一开始可以为空