我试图删除“toevoeging”列中具有值的所有行
我提出了这个问题:
DELETE FROM gebruiksoppervlakte WHERE toevoeging = NOT NULL;
为什么这不可能? 所以我想保留有NULL的行 谢谢!
答案 0 :(得分:6)
您需要使用IS NOT NULL
代替toevoeging = NOT NULL
:
DELETE
FROM gebruiksoppervlakte
WHERE toevoeging IS NOT NULL;
NULL
缺乏价值。因此,使用IS NULL
或IS NOT NULL
表示您的列缺少值或缺少值。
编辑,这会删除表格中toevoeging
列中包含值的所有内容。如果您要删除空字符串,则需要使用:
DELETE
FROM gebruiksoppervlakte
WHERE toevoeging = '';
请参阅Demo。
如果要删除null
值的行,则使用:
DELETE
FROM gebruiksoppervlakte
WHERE toevoeging IS NULL;
请参阅Demo
编辑#2,根据我们在聊天中的对话,您尝试删除存在值但该值不是空字符串的所有行。然后,剩余的行需要更新为列中的null
。因此,您需要同时使用删除和更新:
DELETE
FROM gebruiksoppervlakte
WHERE toevoeging IS NOT NULL
and toevoeging <> '';
update gebruiksoppervlakte
set toevoeging = null;
请参阅Demo
答案 1 :(得分:0)
使用WHERE子句查找具有NULL值的行时,请不要使用“= NULL”比较,而是始终使用IS NULL或IS NOT NULL比较运算符。
所以正确的查询是:
DELETE FROM gebruiksoppervlakte WHERE toevoeging IS NOT NULL;
答案 2 :(得分:0)
由于无法比较NULL,因此以下内容与... WHERE toevoeging IS NOT NULL
完全相同:
DELETE FROM gebruiksoppervlakte
WHERE toevoeging = toevoeging
;