获取SQL查询的行数最便宜的方法是什么?

时间:2010-02-26 19:02:45

标签: sql mysql

在网页上编写分页查询时,获取总行数最便宜的方法是什么?有没有办法在不运行两次查询的情况下执行此操作 - 一个用于总计,另一个用于限制?

使用MySQL

示例:(我想知道是否有更便宜的方式)

获取计数

SELECT COUNT(*) FROM table

获取寻呼

SELECT mycolumns FROM table LIMIT 100

如何在不运行2次查询的情况下获得总计数。

4 个答案:

答案 0 :(得分:4)

您可以使用SQL_CALC_FOUND_ROWS选项运行第一个查询,然后运行:

SELECT FOUND_ROWS();

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

答案 1 :(得分:1)

这将在每行中为您提供一个名为Count的附加列,其中包含总行数:

SELECT mycolumns, (select count(*) from table) as Count 
FROM table 
LIMIT 100

答案 2 :(得分:0)

  

tablename

中选择count(*)

获取表tablename

中行数的最有效方法

答案 3 :(得分:0)

select count(1) as counter from *table_name*

这比使用count(*)避免检查表格中的所有列要好得多。