sql >> Databáze >  >> RDS >> Mysql

Jak mohu spočítat počet řádků, které vrátil dotaz MySQL?

Získání celkového počtu řádků ve výsledku dotazu...

Můžete jen opakovat výsledek a počítat je. Neříkáte, jaký jazyk nebo klientskou knihovnu používáte, ale API poskytuje mysql_num_rows funkce, která vám může sdělit počet řádků ve výsledku.

To je vystaveno v PHP, například jako mysqli_num_rows funkce. Jak jste upravili otázku, abyste zmínili, že používáte PHP, zde je jednoduchý příklad použití funkcí mysqli:

$link = mysqli_connect("localhost", "user", "password", "database");

$result = mysqli_query($link, "SELECT * FROM table1");
$num_rows = mysqli_num_rows($result);

echo "$num_rows Rows\n";

Získání počtu řádků vyhovujících některým kritériím...

Stačí použít COUNT(*) – viz Počítání řádků v příručce MySQL. Například:

SELECT COUNT(*) FROM foo WHERE bar= 'value';

Získat celkový počet řádků při použití LIMIT...

Pokud jste použili klauzuli LIMIT, ale chcete vědět, kolik řádků byste bez ní získali, použijte SQL_CALC_FOUND_ROWS ve vašem dotazu následovaný SELECT FOUND_ROWS( );

SELECT SQL_CALC_FOUND_ROWS * FROM foo
   WHERE bar="value" 
   LIMIT 10;

SELECT FOUND_ROWS();

U velmi velkých tabulek to nebude zvlášť efektivní a je lepší spustit jednodušší dotaz pro získání počtu a jeho uložení do mezipaměti před spuštěním dotazů pro získání stránek dat.



  1. Jak nainstalovat SQL Server na SUSE 12

  2. Úvahy o integritě dat a výkonu v semisynchronní replikaci MySQL

  3. Jak omezím počet řádků vrácených dotazem Oracle po objednání?

  4. SQL Server – chybí NATURAL JOIN / x JOIN y USING (pole)