我试图删除在“toevoeging”列中有值的所有行
我做了这个查询:
DELETE FROM gebruiksoppervlakte WHERE toevoeging = NOT NULL;
为什么这是不可能的?所以我想保留有NULL的行谢谢!
我试图删除在“toevoeging”列中有值的所有行
我做了这个查询:
DELETE FROM gebruiksoppervlakte WHERE toevoeging = NOT NULL;
为什么这是不可能的?所以我想保留有NULL的行谢谢!
您需要使用IS NOT NULL
而不是toevoeging = NOT NULL
:
DELETE
FROM gebruiksoppervlakte
WHERE toevoeging IS NOT NULL;
NULL
是缺乏价值的东西。因此,使用IS NULL
orIS NOT NULL
意味着您的列要么缺少值,要么不缺少值。
编辑,这将删除表中列中有值的所有内容toevoeging
。如果您有要删除的空字符串,那么您将要使用:
DELETE
FROM gebruiksoppervlakte
WHERE toevoeging = '';
请参阅演示。
如果要删除具有null
值的行,则将使用:
DELETE
FROM gebruiksoppervlakte
WHERE toevoeging IS NULL;
看演示
编辑#2,根据我们在聊天中的对话,您试图删除所有有值但该值不是空字符串的行。然后剩余的行需要更新到null
列中。因此,您需要同时使用删除和更新:
DELETE
FROM gebruiksoppervlakte
WHERE toevoeging IS NOT NULL
and toevoeging <> '';
update gebruiksoppervlakte
set toevoeging = null;
看演示
使用 WHERE 子句定位具有 NULL 值的行时,切勿使用“= NULL”比较,而始终使用 IS NULL 或 IS NOT NULL 比较运算符。
所以正确的查询是:
DELETE FROM gebruiksoppervlakte WHERE toevoeging IS NOT NULL;
因为 NULL 不能比较,所以下面的工作与 完全相同... WHERE toevoeging IS NOT NULL
:
DELETE FROM gebruiksoppervlakte
WHERE toevoeging = toevoeging
;