列「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
orを使用IS 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;
デモを見る
NULL は比較できないため、以下は とまったく同じように機能します... WHERE toevoeging IS NOT NULL
。
DELETE FROM gebruiksoppervlakte
WHERE toevoeging = toevoeging
;
WHERE 句を使用して NULL 値を持つ行を検索する場合は、「= NULL」比較を使用しないでください。代わりに、常に IS NULL または IS NOT NULL 比較演算子を使用してください。
したがって、正しいクエリは次のとおりです。
DELETE FROM gebruiksoppervlakte WHERE toevoeging IS NOT NULL;