W programie SQL Server, aby uzyskać całkowitą liczbę wierszy, których dotyczy ostatnia instrukcja, można użyć zmiennej systemowej @@ROWCOUNT. Podobnie w MySQL możesz go znaleźć za pomocą funkcji FOUND_ROWS().
Utwórzmy ten zbiór danych
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();
Powyższe zwróci dwa zestawy wyników. Drugi zestaw wyników to 5 (liczba wierszy dla instrukcji SELECT).
Możesz również użyć SQL_CALC_FOUND_ROWS wraz z FOUND_ROWS(), aby uzyskać całkowitą liczbę wierszy w tabeli. W przypadku użycia SQL_CALC_FOUND_ROWS FOUND_ROWS() pominie klauzulę LIMIT.
SELECT * FROM TEST LIMIT 2;
Powyższe zwróci tylko 2 wiersze.
SELECT SQL_CALC_FOUND_ROWS * FROM TEST LIMIT 2; SELECT FOUND_ROWS();
Po wykonaniu powyższego zwracane są dwa zestawy wyników. Pierwszy zestaw wyników zwróci dwa wiersze. Drugi zestaw wyników zwróci 5 (całkowita liczba wierszy bez klauzuli LIMIT).
Myślę, że jest to naprawdę ciekawa funkcja i możemy ją wykorzystać w codziennym zastosowaniu. Zostaw komentarz, jeśli używasz aplikacji, w której musisz wiedzieć, ile wierszy dotyczył poprzedniego komentarza.