考虑这样的场景:论坛里有个页面,混合展示所有的精华贴和热门贴; 帖子按ID逆序排列,并且要有分页。
怎么写出一个符合这种要求的SQL? 受限于你的数据库设计和性能约束,这样的SQL可能很难写。
有种办法是:先取出10条精华贴,再取出10条热门贴,然后再在内存里按ID逆序排列并去重,最后返回前10条。
这样做不需要做复杂的SQL查询,性能也能接受。不过,这种模式只适于
比较式分页(ID小于某个值的前10个帖子),不适应于普通的页码式分页(第N页)。 考虑一下取第二页的场景,你就明白我的意思了。