Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL — funkcja FOUND_ROWS() dla całkowitej liczby wierszy, których dotyczy problem

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie JDeveloper z bazą danych MySQL i bazą danych Oracle na AWS RDS, część 3

  2. Jak wyświetlić sortowanie bazy danych w MySQL

  3. Czy mysql_real_escape_string() jest uszkodzony?

  4. SQL Wybieranie z dwóch tabel z wewnętrznym sprzężeniem i limitem

  5. Przewodnik po projektowaniu bazy danych do zarządzania blogami w MySQL