具有总记录和分页的单个SQL查询

时间:2015-01-29 16:48:54

标签: sql pagination web-sql ansi-sql

我的查询根据搜索参数提取记录,我希望查询返回总记录以及基于开始和结束的分页,我是否要运行两个查询或者是否存在在单个查询中更直观的方式。

SELECT * FROM page WHERE article_id = ? AND content like '%@%' //replacing @ with keyword

编辑: 寻找标准SQL(实际使用WebSQL)

2 个答案:

答案 0 :(得分:0)

此查询将为每行返回记录总数和实际页面(考虑每页有5行)

select *, count(*) as total, (seq - MOD(seq, 5)) / 5
from (select id, row_number() over(order by id) as seq
      from page) a
join page b on b.id = a.id;

请注意,此查询仅适用于Oracle,因为您未指定我自己决定的DBMS,因此您可能需要进行修改。

答案 1 :(得分:-1)

尝试使用子查询

count * from table where (select .....)