Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL – Função FOUND_ROWS() para o número total de linhas afetadas

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.