Na serveru SQL Server můžete k získání celkového počtu řádků ovlivněných posledním příkazem použít systémovou proměnnou @@ROWCOUNT. Podobně v MySQL jej najdete pomocí funkce FOUND_ROWS ().
Nechte nás vytvořit tuto datovou sadu
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();
Výše uvedené vrátí dvě sady výsledků. Druhá sada výsledků bude 5 (počet řádků pro příkaz SELECT).
Můžete také použít SQL_CALC_FOUND_ROWS spolu s FOUND_ROWS () k získání celkového počtu řádků v tabulce. Při použití SQL_CALC_FOUND_ROWS FOUND_ROWS() vynechá klauzuli LIMIT.
SELECT * FROM TEST LIMIT 2;
Výše uvedené vrátí pouze 2 řádky.
SELECT SQL_CALC_FOUND_ROWS * FROM TEST LIMIT 2; SELECT FOUND_ROWS();
Po provedení výše uvedeného vrátí dvě sady výsledků. První sada výsledků vrátí dva řádky. Druhá sada výsledků vrátí 5 (celkový počet řádků bez klauzule LIMIT).
Myslím, že je to opravdu zajímavá funkce a můžeme ji používat v každodenních aplikacích. Pokud používáte aplikaci, kde potřebujete vědět, kolik řádků bylo ovlivněno předchozím komentářem, zanechte komentář.