Zeilen in einer Tabelle löschen

lothar

Benutzer
Beiträge
11
Hallo zusammen,

ich möchte die Zeilen, in denen keine Werte drin sind (NULL) löschen.

Dazu schreibe ich die folgende Abfrage:


DELETE FROM Tabellenname

WHERE Spaltenname = 'NULL';



Als Ergebnis wird '0 Zeilen betroffen' geliefert.

Was mache ich falsch? Ich danke im Voraus.

Viele Grüße
 
Werbung:
Du prüfst auf den Inhalt 'NULL', als ob NULL eine Zeichenkette wäre, ist es aber nicht. NULL ist nicht existent, daher musst du mit
WHERE spalte IS NULL
prüfen.
 
Du kannst nicht mit NULL vergleichen, sondern mußt prüfen, ob da NULL ist:

Code:
test=# create table lothar(id int primary key, val text);
CREATE TABLE
test=*# insert into lothar values (1, 'test');
INSERT 0 1
test=*# insert into lothar values (2, NULL);
INSERT 0 1
test=*# insert into lothar values (3, 'bla');
INSERT 0 1
test=*# select * from lothar ;
 id | val  
----+------
  1 | test
  2 |
  3 | bla
(3 Zeilen)

test=*# delete from lothar where val = null;
DELETE 0
test=*# delete from lothar where val is null;
DELETE 1
test=*#

Syntax in PostgreSQL.
 
Werbung:
Zurück
Oben