sql >> Database >  >> RDS >> Mysql

MySQL – FOUND_ROWS() Functie voor totaal aantal betrokken rijen

In SQL Server kunt u de systeemvariabele @@ROWCOUNT gebruiken om het totale aantal rijen te krijgen waarop de laatste instructie betrekking heeft. Op dezelfde manier kun je het in MySQL vinden met de functie FOUND_ROWS ().

Laten we deze dataset maken

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


Het bovenstaande levert twee resultatensets op. De tweede resultaatset is 5 (aantal rijen voor de SELECT-instructie).

Je kunt ook SQL_CALC_FOUND_ROWS samen met FOUND_ROWS () gebruiken om het totale aantal rijen in een tabel te krijgen. Wanneer SQL_CALC_FOUND_ROWS wordt gebruikt, zal FOUND_ROWS() de LIMIT-clausule weglaten.

SELECT * FROM TEST LIMIT 2;

Het bovenstaande levert slechts 2 rijen op.

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


Als je het bovenstaande uitvoert, worden er twee resultaatsets geretourneerd. De eerste resultatenset retourneert twee rijen. De tweede resultaatset retourneert 5 (totaal aantal rijen zonder LIMIT-clausule).

Ik denk dat dit een erg interessante functie is en we kunnen deze in dagelijkse toepassingen gebruiken. Laat een reactie achter als je een applicatie gebruikt waarbij je moet weten hoeveel rijen zijn beïnvloed door de vorige reactie.


  1. IN vs OR van Oracle, welke sneller?

  2. De SQL Server-equivalent aan GROUP_CONCAT()

  3. Snellere innovatie leveren aan de gemeenschap van MariaDB

  4. Tabel maken met behulp van GUI in SQL Server - SQL Server / T-SQL-zelfstudie, deel 37