可以使用偏移限制获取总行数吗?

11

大家好,能否在使用偏移量和限制条件的情况下获取总行数?

场景

SELECT * FROM users limit 0,5; 

这个查询包含300条记录,但问题是如果我使用偏移量调用此查询,则结果只会显示5条记录,而我不想两次编写查询。一次用于分页限制,另一次用于记录总数...

我不想这样

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

我必须合并这些查询,任何帮助都将不胜感激。


  1. 为什么不单独运行它们?
  2. count 查询中是否有额外的 limit 子句?
- Mosty Mostacho
1
这是查询的简短示例,我有一个非常庞大的查询,所以我不想重复编写查询 @MostyMostacho - Query Master
1个回答

8
您可以像这样使用SQL_CALC_FOUND_ROWS
SELECT SQL_CALC_FOUND_ROWS * FROM users limit 0,5;

该语句获取在应用任何LIMIT子句前的行数。它需要另一个查询来获取结果,但是那个查询可以很简单地完成。

SELECT FOUND_ROWS()

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接