很常见的一个场景:
假设数据库有个文章表, 里面有3条记录: id=1, title=a1; id=2, title=a2; id=3, title=a3
当我读取id=2的文章显示时, 我需要在左下角显示上一篇文章的标题也就是a1, 在右下角显示下一篇文章的标题a2
那么有什么比较好的办法能在去到id=2的记录时, 同时取到它前后的2条相关记录呢?
我现在用最笨的办法, 通过3次sql取到这3个值:
select * from article where id = 2;
select * from article where id < 2 order by id asc limit 1;
select * from article where id > 2 order by id desc limit 1;
请问还有什么更好的办法吗?
问题补充
这个...不能精确查找啊...比如我现在要显示id=253的文章...它的前一个id是245, 后一个id为278...因为中间的id可能是文章被删掉了...这样怎么取啊...有什么好的办法吗?