Mysql
 sql >> база данни >  >> RDS >> Mysql

Как мога да преброя броя на редовете, върнати от MySQL заявка?

Получаване на общия брой редове в резултат от заявка...

Можете просто да повторите резултата и да ги преброите. Не казвате какъв език или клиентска библиотека използвате, но API предоставя mysql_num_rows функция, която може да ви каже броя на редовете в резултата.

Това е изложено в PHP, например, като mysqli_num_rows функция. Тъй като редактирахте въпроса, за да споменете, че използвате PHP, ето един прост пример за използване на 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";

Получаване на брой редове, отговарящи на някои критерии...

Просто използвайте COUNT(*) - вижте Преброяване на редове в ръководството за MySQL. Например:

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

Получаване на общия брой редове, когато се използва LIMIT...

Ако сте използвали клауза LIMIT, но искате да знаете колко реда бихте получили без нея, използвайте SQL_CALC_FOUND_ROWS във вашата заявка, последвано от SELECT FOUND_ROWS( );

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

SELECT FOUND_ROWS();

За много големи таблици това няма да е особено ефективно и е по-добре да изпълните по-проста заявка, за да получите брой и да я кеширате, преди да изпълните заявките си, за да получите страници с данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 'Поръчай по' - правилно сортиране на букви и цифри

  2. Копиране/дублиране на база данни без използване на mysqldump

  3. mysql динамична заявка в съхранена процедура

  4. Въведение в отказоустойчивостта за MySQL репликация - блогът 101

  5. Как да подобрим производителността на MySQL AWS 2 пъти над Amazon RDS на същата цена