Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abrufen von Abfrageergebnissen unter Ignorieren der LIMIT-Anweisung

MySQL unterstützt ein FOUND_ROWS() Funktion um die unbegrenzte Anzahl von Zeilen zu finden, die von der vorherigen eingeschränkten Abfrage zurückgegeben worden wären.

SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0'  LIMIT 10,20
SELECT FOUND_ROWS();

Beachten Sie, dass (a) Sie SQL_CALC_FOUND_ROWS einschließen müssen Option, und (b) dass dies eine bestimmte MySQL-Erweiterung ist, die nicht auf einem anderen RDBMS funktioniert (obwohl sie beide können haben ihre eigene Art, dies zu tun.)

Das ist nicht unbedingt der beste Weg, Dinge zu tun, auch wenn es sich so anfühlt; Sie müssen immer noch zwei Anweisungen ausgeben, Sie führen Nicht-Standard-SQL und den eigentlichen COUNT ein ing ist wahrscheinlich ähnlich schnell wie ein einfaches SELECT COUNT(*)... ohnehin. Ich selbst würde mich eher an die Standardmethode halten.