请问怎么查查询分页中返回符答查询条件的记录总数:
select top 10 *
from (select row_number()
over(order by id asc) as rownumber,*
from com_system_menu) temp_row
where rownumber>((2-1)*10);
我要的记录数是上面Where rownumber>((2-1)*10)前的所有记录数?
请问怎么查查询分页中返回符答查询条件的记录总数:
select top 10 *
from (select row_number()
over(order by id asc) as rownumber,*
from com_system_menu) temp_row
where rownumber>((2-1)*10);
我要的记录数是上面Where rownumber>((2-1)*10)前的所有记录数?
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
2 回答2k 阅读
不知道你用的是什么数据库。
如果是MySQL的话有一个特性专门适用这种场景: FOUND_ROWS。比如按以下方式对某个表foobar执行查询
注1,虽然上述是两条SELECT语句,但实际上查询只是执行一次。
如果使用的是PostgreSQL, 虽然没有完全对等的FOUND_ROWS实现,但是可以通过窗口函数变相地实现类似功能:
注2,PG的上述查询会返回最多10行数据,其中列 total_rows 的值相同,它就是该查询不含LIMIT子句时的总行数。