这是否可以通过偏移限制获得总行数

时间:2012-04-10 06:59:09

标签: mysql merge count offset

Hey Guyz这是否可以通过偏移限制获得总行数

方案

SELECT * FROM users limit 0,5; 

此查询包含300条记录,但问题是如果我使用offset调用此查询,结果将只显示5条记录,而且我不想在两次写入查询。一个用于分页限制,另一个用于总记录数...

  

我不想要这个

SELECT * FROM users limit 0,5; // paging 
SELECT count(*) FROM users; // count 

我必须合并这个查询或帮助肯定赞赏

1 个答案:

答案 0 :(得分:7)

您可以像这样使用SQL_CALC_FOUND_ROWS

SELECT SQL_CALC_FOUND_ROWS * FROM users limit 0,5;

在应用任何LIMIT子句之前获取行计数。它确实需要另一个查询来获取结果,但该查询可以只是

SELECT FOUND_ROWS()

因此您无需重复复杂的查询。