在网页上编写分页查询时,获取总行数最便宜的方法是什么?有没有办法在不运行两次查询的情况下执行此操作 - 一个用于总计,另一个用于限制?
使用MySQL
示例:(我想知道是否有更便宜的方式)
获取计数
SELECT COUNT(*) FROM table
获取寻呼
SELECT mycolumns FROM table LIMIT 100
如何在不运行2次查询的情况下获得总计数。
答案 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(*)
避免检查表格中的所有列要好得多。