如何计算特定行数,例如如果超过1,000,那么选择最多只计数1,000?

时间:2011-07-25 21:53:35

标签: mysql

我知道如何使用SQL_CALC_FOUND_ROWSLimit来返回分页的总行数和结果。

但我的问题是......

如果(出于性能目的)我想显示总行数是否超过1,000,我只想返回1,000(即使有更多记录),该怎么办?

SELECT Count(id) FROM table WHERE 1

我谷歌很多,但找不到这个。我想到这可能会提高全文搜索速度,例如。

提前感谢。

3 个答案:

答案 0 :(得分:4)

在许多情况下,它可以更快,但你应该测试它:

SELECT count(*) FROM ( SELECT 1 FROM t LIMIT 1000 ) a

答案 1 :(得分:1)

我很确定mysql有自己的内置行计数器,当记录输入时,标记会上升一个档次,你能做的就是这样:

$query = "SELECT * FROM table WHERE maxrows = '1'";

然后有一千行在maxrows单元格中得到一个值,另外一千行的值为2,依此类推

答案 2 :(得分:1)

SELECT LEAST(Count(id),1000) FROM table WHERE 1

有关LEAST功能的文档,请访问:http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least