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.