Heim >Datenbank >MySQL-Tutorial >So beheben Sie den MySQL-Fehler 1235: „LIMIT & IN/ALL/ANY/SOME subquery' wird nicht unterstützt?

So beheben Sie den MySQL-Fehler 1235: „LIMIT & IN/ALL/ANY/SOME subquery' wird nicht unterstützt?

Susan Sarandon
Susan SarandonOriginal
2024-12-13 22:33:10867Durchsuche

How to Resolve MySQL Error 1235:

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn