当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《我如何计算mysql查询返回的行数?》经验,为你挑选了3个好方法。

我如何计算mysql查询返回的行数?使用PHP ..



1> Paul Dixon..:

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

你可以迭代结果并计算它们.您没有说明您使用的是哪种语言或客户端库,但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,然后使用SELECT FOUND_ROWS();

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

SELECT FOUND_ROWS();

对于非常大的表,这不会特别有效,并且在运行查询以获取数据页之前,最好运行更简单的查询来获取计数并缓存它.


+1包含SQL_CALC_FOUND_ROWS以及使用它的正确上下文

2> 小智..:

如果您必须使用简单SQL解决问题,则可以使用子查询.

select count(*) from (select * from foo) as x;



3> Stepan Mazur..:

如果您的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();

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有