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.