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

Node.js-API mit Express und mysql - Datensatzanzahl, Seitenzahl usw. abrufen und Paginierung bereitstellen

MySQL LIMIT nimmt 2 Werte, offset &rowcount. Wenn Sie diese manipulieren, können Sie natürlich Paging durchführen.

z.B. Angenommen, jede Seite war 10 Datensätze lang. Seite1 =LIMIT 0, 10 Seite2 =LIMIT 10, 10 Seite3 =LIMIT 20, 10 usw.

IOW:LIMIT (pageNo - 1) * PageSize, PageSize

Ein Problem bei der Verwendung von Limit ist nun, dass die Datensatzanzahl für die Ergebnismenge gilt, IOW:die begrenzten 10 Datensätze.

Was Sie jedoch tun können, ist, MySQL zu bitten, zu speichern, was die Datensatzanzahl gewesen wäre, wenn das LIMIT nicht angewendet worden wäre. Sie können dies abrufen, indem Sie der SQL das Präfix SQL_CALC_FOUND_ROWS.

voranstellen

z.B. SELECT SQL_CALC_FOUND_ROWS * FROM TABLE WHERE something LIMIT 10, 10

Sie können dann eine andere Abfrage durchführen, die diesen Wert abruft.

SELECT FOUND_ROWS();