No SQL Server para obter o número total de linhas afetadas pela última instrução, você pode usar a variável de sistema @@ROWCOUNT. Da mesma forma, no MySQL você pode encontrá-lo usando a função FOUND_ROWS().
Vamos criar este conjunto de dados
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();
O resultado acima retornará dois conjuntos de resultados. O segundo conjunto de resultados será 5 (nº de linhas para a instrução SELECT).
Você também pode usar SQL_CALC_FOUND_ROWS junto com FOUND_ROWS() para obter o número total de linhas em uma tabela. Quando SQL_CALC_FOUND_ROWS for usado, FOUND_ROWS() omitirá a cláusula LIMIT.
SELECT * FROM TEST LIMIT 2;
O acima retornará apenas 2 linhas.
SELECT SQL_CALC_FOUND_ROWS * FROM TEST LIMIT 2; SELECT FOUND_ROWS();
Quando você executa o acima, ele retorna dois conjuntos de resultados. O primeiro conjunto de resultados retornará duas linhas. O segundo conjunto de resultados retornará 5 (número total de linhas sem cláusula LIMIT).
Acho essa função muito interessante e podemos usá-la em aplicativos diários. Deixe um comentário se estiver usando um aplicativo em que precisa saber quantas linhas foram afetadas com o comentário anterior.