如何计算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 子句,但想知道没有它会得到多少行,请在查询中使用 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;