【问题标题】:What is the difference of using COUNT() and FOUND_ROWS() if I don't use a LIMIT?如果我不使用 LIMIT,使用 COUNT() 和 FOUND_ROWS() 有什么区别?
【发布时间】:2011-11-22 05:32:09
【问题描述】:

使用有区别

SELECT COUNT()

反对

SELECT FOUND_ROWS()

我知道当你有限制时应该使用找到的行,但如果你不使用限制,真的有什么区别吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你会得到相同的结果,但有两种不同的方式。

    COUNT() 是一个aggregated function,用于选择和分组数据。

    FOUND_ROWS() 是一个information function另一个选择之后使用,以获取有关发生情况的信息。

    如果您只需要使用 COUNT() 的行数,它会更快。

    像这样:

    select count(*) as number_of_rows from some_table where something = something group by something;
    

    select * from some_table where something = something group by something;
    select found_rows();
    

    【讨论】:

    • 谢谢,只是想知道 PDO 不支持 select 语句上的 COUNT 并且 FOUND_ROWS() 有效。我会接受的:)
    【解决方案2】:
    select count(*) from tablename
    

    是获取表tablename中行数最有效的方法

    SELECT FOUND_ROWS();
    

    http://dev.mysql.com/doc/refman/5.1/en/information-functions.html#function_found-rows

    【讨论】:

      猜你喜欢
      • 2011-02-22
      • 2020-03-02
      • 2020-11-10
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      相关资源
      最近更新 更多