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

Wie kann man alle Datensätze zählen, aber nur eine bestimmte Zahl zur Anzeige abrufen (LIMIT)?

MySQL hat eine spezielle Unterstützung für diese Art von Dingen. Fügen Sie zuerst SQL_CALC_FOUND_ROWS ein in Ihrem SELECT:

SELECT SQL_CALC_FOUND_ROWS *
FROM Badges
WHERE UID = '$user'
ORDER by Date DESC
LIMIT 10 -- Or whatever

Ziehen Sie dann Ihre Zeilen heraus und schauen Sie sich sofort FOUND_ROWS() so:

SELECT FOUND_ROWS()

um die Anzahl der Zeilen zu erhalten, die mit Ihrer ursprünglichen Abfrage übereinstimmten, ohne die LIMIT-Klausel zu berücksichtigen.

Dies ist MySQL-spezifisch, sollte aber etwas schneller sein als zwei Abfragen.