1

列「toevoeging」に値を持つすべての行を削除しようとしています

私はこのクエリを作成しました:

DELETE FROM gebruiksoppervlakte WHERE toevoeging = NOT NULL;

なぜこれが不可能なのですか?だから私は NULL を持つ行を保持したい ありがとう!

4

3 に答える 3

6

IS NOT NULL代わりに使用する必要がありますtoevoeging = NOT NULL

DELETE 
FROM gebruiksoppervlakte 
WHERE toevoeging IS NOT NULL;

NULL価値のないものです。したがって、IS NULLorを使用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;

デモを見る

于 2013-03-29T13:40:34.297 に答える
0

NULL は比較できないため、以下は とまったく同じように機能します... WHERE toevoeging IS NOT NULL

DELETE FROM gebruiksoppervlakte
WHERE toevoeging = toevoeging
   ;
于 2013-05-09T16:31:44.360 に答える
0

WHERE 句を使用して NULL 値を持つ行を検索する場合は、「= NULL」比較を使用しないでください。代わりに、常に IS NULL または IS NOT NULL 比較演算子を使用してください。

したがって、正しいクエリは次のとおりです。

DELETE FROM gebruiksoppervlakte WHERE toevoeging IS NOT NULL;
于 2013-03-29T13:42:14.713 に答える