MySQL: ERROR 1242 (21000): Subquery returns more than 1 row

Erstellt: 16.10.2010 22:14

Wie diese Errormeldung schon recht gut beschreibt, tritt dieser Fehler auf, wenn der Subquery mehr als ein Ergebnis ausspuckt.

Beispielsweise bei einer Abfrage wie folgender kann dies der Fall sein:

SELECT * FROM tabelle1 WHERE zeile = (SELECT zeile FROM tabelle2);

Liefert der Subquery mehr als eine Zeile als Antwort fügt man dem = einfach noch ein ANY hinzu:

SELECT * FROM tabelle1 WHERE zeile = ANY (SELECT zeile FROM tabelle2);

...und als Antwort bekommt man alle Zeilen auf welche die Bedingung mit allen Antwortzeilen des Subquerys passt.

Anmerkung:
= und LIKE kann man zwar in vielen Fällen gleich benutzen, "LIKE ANY" funktioniert allerdings nicht, es muss "= ANY" verwendet werden.

Tagged: Linux MySQL


Ähnliche Artikel:
MySQLDump: Got error: 29: File [...] not found (Errcode: 24) when using LOCK TABLES
Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
Bei MySQL-Tabelle Autoincrement zurücksetzen
MySQLDump über SSH
Fehler "Can't call method "login" on an undefined value at perlfile.pl line xxx." bei POP3-Abfragen.

« Vorheriger Eintrag

Nächster Eintrag »

Kommentare

Verfasse den ersten Kommentar!

Kommentar verfassen