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



我有一个根据搜索参数拉取记录的查询,我希望查询返回总记录以及基于开始和结束的分页,我是否必须运行两个查询或是否有更直观的方法在单个查询中完成。

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

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

此查询将返回每行的记录总数和实际页面(考虑到每页有 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,因此您可能需要进行编辑。

尝试使用子查询

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

最新更新