一尘不染

如何计算MySQL查询返回的行数?

mysql

如何计算MySQL查询返回的行数?


阅读 644

收藏
2020-05-17

共1个答案

一尘不染

获取查询结果中的总行数…

您可以仅迭代结果并计数。您没有说使用什么语言或客户端库,但是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();

对于非常大的表,这并不是特别有效,并且最好运行一个简单的查询来获取计数并在运行查询以获取数据页之前对其进行缓存。

2020-05-17