Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL – Funzione FOUND_ROWS() per il numero totale di righe interessate

In SQL Server per ottenere il numero totale di righe interessate dall'ultima istruzione, puoi utilizzare la variabile di sistema @@ROWCOUNT. Allo stesso modo, in MySQL puoi trovarlo usando la funzione FOUND_ROWS().

Creiamo questo set di dati

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();


Quanto sopra restituirà due set di risultati. Il secondo set di risultati sarà 5 (numero di righe per l'istruzione SELECT).

Puoi anche usare SQL_CALC_FOUND_ROWS insieme a FOUND_ROWS() per ottenere il numero totale di righe in una tabella. Quando viene utilizzato SQL_CALC_FOUND_ROWS, FOUND_ROWS() ometterà la clausola LIMIT.

SELECT * FROM TEST LIMIT 2;

Quanto sopra restituirà solo 2 righe.

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


Quando esegui quanto sopra, restituisce due set di risultati. Il primo set di risultati restituirà due righe. Il secondo set di risultati restituirà 5 (numero totale di righe senza clausola LIMIT).

Penso che questa sia una funzione davvero interessante e che possiamo usarla nell'applicazione quotidiana. Lascia un commento se stai utilizzando un'applicazione in cui devi sapere quante righe sono state interessate dal commento precedente.