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.
Ähnliche Artikel:
MySQLDump über SSH
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
(Sun/Oracle) Java in Iceweasel: "Caused by: java.net.ConnectException: Network is unreachable"
Kommentare
Verfasse den ersten Kommentar!