Heim >Datenbank >MySQL-Tutorial >So beheben Sie den MySQL-Fehler 1235: „LIMIT & IN/ALL/ANY/SOME subquery' wird nicht unterstützt?
Fehler: „Diese Version von MySQL unterstützt die Unterabfrage ‚LIMIT & IN/ALL/ANY/SOME‘ noch nicht“
Wann Beim Ausführen einer PHP-Abfrage, die eine Unterabfrage mit einer LIMIT-Klausel und einem IN-Operator verwendet, kann es zu einem Fehler wie „ Dies:
Error during SQL execution: SELECT VID, thumb FROM video WHERE VID IN ( SELECT VID FROM video WHERE title LIKE "%funny%" ORDER BY viewtime DESC LIMIT 5) ORDER BY RAND() LIMIT 1 MySQL Error: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' MySQL Errno: 1235
Dieser Fehler tritt auf, weil bestimmte Versionen von MySQL keine Unterabfragen mit einer LIMIT-Klausel unterstützen, die in Verbindung mit IN-, ALL-, ANY- oder SOME-Operatoren verwendet werden.
Lösung
Um dieses Problem zu beheben, sollten Sie die Verwendung eines JOIN anstelle eines in Betracht ziehen Unterabfrage:
SELECT v.VID, v.thumb FROM video AS v INNER JOIN (SELECT VID FROM video WHERE title LIKE "%'.$Channel['name'].'%" ORDER BY viewtime DESC LIMIT 5) as v2 ON v.VID = v2.VID ORDER BY RAND() LIMIT 1
Diese modifizierte Abfrage verwendet einen INNER JOIN, um die Ergebnisse zweier SELECT-Anweisungen zu kombinieren. Die erste SELECT-Anweisung ruft die VID von Videos ab, deren Titel den angegebenen Kanalnamen enthalten, ordnet sie in absteigender Reihenfolge nach Wiedergabezeit und beschränkt die Ergebnisse auf die ersten 5. Die zweite SELECT-Anweisung verwendet dann diese VID-Liste, um die Hauptergebnismenge zu filtern. Abrufen bestimmter Spalten aus der Videotabelle.
Das obige ist der detaillierte Inhalt vonSo beheben Sie den MySQL-Fehler 1235: „LIMIT & IN/ALL/ANY/SOME subquery' wird nicht unterstützt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!