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

MySQL – FOUND_ROWS()-Funktion für die Gesamtzahl der betroffenen Zeilen

In SQL Server können Sie die Systemvariable @@ROWCOUNT verwenden, um die Gesamtzahl der von der letzten Anweisung betroffenen Zeilen zu erhalten. In ähnlicher Weise können Sie es in MySQL mit der Funktion FOUND_ROWS () finden.

Lassen Sie uns diesen Datensatz erstellen

CREATE TABLE TEST(ID INT, NAME VARCHAR(30));
INSERT INTO TEST(ID,NAME)
SELECT 1,'NAME1' UNION ALL
SELECT 2,'NAME2' UNION ALL
SELECT 3,'NAME3' UNION ALL
SELECT 4,'NAME4' UNION ALL
SELECT 5,'NAME5';
SELECT * FROM TEST;
SELECT FOUND_ROWS();


Oben werden zwei Resultsets zurückgegeben. Die zweite Ergebnismenge ist 5 (Anzahl der Zeilen für die SELECT-Anweisung).

Sie können auch SQL_CALC_FOUND_ROWS zusammen mit FOUND_ROWS () verwenden, um die Gesamtzahl der Zeilen in einer Tabelle zu erhalten. Wenn SQL_CALC_FOUND_ROWS verwendet wird, lässt FOUND_ROWS() die LIMIT-Klausel weg.

SELECT * FROM TEST LIMIT 2;

Das Obige gibt nur 2 Zeilen zurück.

SELECT SQL_CALC_FOUND_ROWS * FROM TEST LIMIT 2;
SELECT FOUND_ROWS();


Wenn Sie das obige ausführen, werden zwei Resultsets zurückgegeben. Die erste Ergebnismenge gibt zwei Zeilen zurück. Die zweite Ergebnismenge gibt 5 zurück (Gesamtzahl der Zeilen ohne LIMIT-Klausel).

Ich denke, das ist eine wirklich interessante Funktion und wir können sie in der täglichen Anwendung verwenden. Hinterlassen Sie einen Kommentar, wenn Sie eine Anwendung verwenden, bei der Sie wissen müssen, wie viele Zeilen vom vorherigen Kommentar betroffen waren.