小技巧:从多个数据源中取出前10条记录

考虑这样的场景:论坛里有个页面,混合展示所有的精华贴和热门贴; 帖子按ID逆序排列,并且要有分页。

怎么写出一个符合这种要求的SQL? 受限于你的数据库设计和性能约束,这样的SQL可能很难写。

有种办法是:先取出10条精华贴,再取出10条热门贴,然后再在内存里按ID逆序排列并去重,最后返回前10条。

这样做不需要做复杂的SQL查询,性能也能接受。不过,这种模式只适于
比较式分页(ID小于某个值的前10个帖子),不适应于普通的页码式分页(第N页)。  考虑一下取第二页的场景,你就明白我的意思了。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.