Gibt es eine Problemumgehung für die Verwendung von LIMIT in einer Unterabfrage in MySQL?

7

Hier ist meine ursprüngliche Abfrage ...

%Vor%

Die LIMIT Bedingung ist für die Paginierung.

Jetzt muss ich alles wie vorher bekommen, aber ich muss nur ein Drittel der Zeilen bekommen, wo eine Bedingung ist.

Ich kam dazu und warf einfach LIMIT 30 ein, bevor ich herausfand, wie es geht (die Gesamtzahl der Zeilen entspricht 3) * 2.

%Vor%

MySQL sagte ...

  

1235 - Diese Version von MySQL unterstützt noch nicht 'LIMIT & amp; IN / ALL / ANY / EINIGE Unterabfrage '

Ich denke, ich kann LIMIT in einer Unterabfrage nicht verwenden.

Das ist also eine multiple Frage, aber alle zusammen ...

  • Gibt es eine Problemumgehung für LIMIT in der Unterabfrage?
  • Kann ich ein Drittel der übereinstimmenden Zeilen mit MySQL auswählen?
  • Muss ich dies in 2 Abfragen umwandeln, oder einfach alle auswählen und die Zeilen aufheben, die in PHP nicht benötigt werden?
alex 21.10.2010, 03:35
quelle

3 Antworten

4

Wenn Ihre Version von MySQL dies nicht unterstützt, haben Sie zwei Möglichkeiten:

  • Upgrade. Immer Spaß, und es ist im Allgemeinen am besten, auf der neuesten Version zu sein.
  • Brechen Sie Ihre Unterabfrage mit PHP aus. Ergreifen Sie die IDs und formatieren Sie die Ergebnisse dann in einer durch Kommas getrennten Zeichenfolge.
Chris Henry 21.10.2010, 04:20
quelle
15

Tut mir leid, ich bin zu spät, das hat für mich funktioniert:

%Vor%     
OMG Ponies 21.10.2010 04:32
quelle
1

MySQL unterstützt LIMIT in einer Unterabfrage ... aber MySQL unterstützt NICHT die Verwendung von IN / NOT IN mit einer Unterabfrage.

Um ehrlich zu sein, ich weiß wirklich nicht, was Sie erreichen wollen.

    
Nathan Adams 21.10.2010 04:19
quelle

Tags und Links