【发布时间】:2012-05-12 20:05:54
【问题描述】:
我有一个场景,我得到一个计数,然后将计数作为变量传递给类似的查询以获取分页记录。所以基本上我正在做一个完整的查询,通过内部创建完整的表来获取所有的计数,然后使用该计数来显示同一个表,每页 10 个。我有什么解决方案可以避免这种多重查询?
这样的东西是一种伪语言。
select count {big table}
select big table where records are between count and count+10
有没有一种合理的方法可以在同一个查询中获取 COUNT 变量?
我想知道 Google 将如何处理搜索,它会首先找到所有记录还是只获取记录而不跟踪页面编号?无法预先计算页码,因为它取决于用户发送的变量。
编辑:我在这里有一个类似的问题https://dba.stackexchange.com/questions/161586/including-count-of-a-result-in-the-main-query
【问题讨论】:
-
那个伪查询没有意义。如果
count保存了表中的行数,那么between count and count+10将不会返回任何内容。 -
count+1 然后。谢谢 。计数跟踪页面编号:S
-
那么
count是指表中的行数还是当前页码? -
您使用的是什么 DBMS?
COUNT查询在处理方面相对便宜。如果您想返回页数(记录数除以 10)和当前页的记录,那么您将需要 2 个查询 - 它们是 2 个不同的数据集。 -
你不是在“生成一个完整的表”——这意味着你正在插入数据。你不是。您正在检索数据。
COUNT并不像您没有检索数据那样昂贵,您只是获取一个表包含多少条记录的计数。
标签: sql database pagination