在查询结果中获取总行…
你可以迭代结果并对它们进行计数。你不会说你正在使用什么语言或客户端库,但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时获取总行数…
如果您使用了LIMIT子句,但是想知道没有它的行数,请在查询中使用SQL_CALC_FOUND_ROWS,然后选择FOUND_ROWS();
SELECT SQL_CALC_FOUND_ROWS * FROM foo
WHERE bar="value"
LIMIT 10;
SELECT FOUND_ROWS();
对于非常大的表,这不是特别有效的,您运行更简单的查询可以在运行查询以获取数据页面之前获取计数并缓存它。