我如何计算mysql查询返回的行数?使用PHP ..
你可以迭代结果并计算它们.您没有说明您使用的是哪种语言或客户端库,但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手册中的Counting Rows.例如:
SELECT COUNT(*) FROM foo WHERE bar= 'value';
如果您使用了LIMIT子句但想知道没有它的行数,请在查询中使用SQL_CALC_FOUND_ROWS,然后使用SELECT FOUND_ROWS();
SELECT SQL_CALC_FOUND_ROWS * FROM foo WHERE bar="value" LIMIT 10; SELECT FOUND_ROWS();
对于非常大的表,这不会特别有效,并且在运行查询以获取数据页之前,最好运行更简单的查询来获取计数并缓存它.
如果您必须使用简单SQL解决问题,则可以使用子查询.
select count(*) from (select * from foo) as x;
如果您的SQL查询有一个LIMIT
子句,并且您想知道该数据集中总共有多少结果,那么您可以使用SQL_CALC_FOUND_ROWS
后跟SELECT FOUND_ROWS();
这将使用COUNT(*)
Example 返回行数A LOT (直接来自MySQL文档):
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name -> WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS();