2017-04-05 14:53:25 4785次浏览 6条回答 0 悬赏 100 金钱

表中增加了排序字段“sort_by”,排序方式为先根据“sort_by”倒序排列,然后根据“id”倒序排列。在这种情况下如何查询当前记录的上一条记录和下一条记录?

最佳答案

  • 阿江 发布于 2017-04-06 09:19 举报

    说个思路:
    1、获取记录的绝对顺序号(也就是按每页1条记录算出来的值):在列表页中将每条记录按照指定的排序方式所处的绝对顺序号(n)保存下来,在详情页的链接中将此顺序号传过去。
    2、在详情页中,根据顺序号,按指定的排序方式查找第n-1和n+1条记录,作为上一条,下一条,显示在当前页,同样,在上一条和下一条的链接上将n-1和n+1要传过去,继续使用。

    1 条回复
    回复于 2017-04-07 11:35 回复

    非常感谢各位回复!最终采用了较笨的方法,根据查询出来的对象数组的键计算出来,这个键相当于您所说的绝对序列号。

  • 回答于 2017-04-05 16:35 举报

    我优先能想到的就是limit 0, 1 这样,通过增加offset 来取下一条

    如果要深入一些,我觉得在 数据库设计上可以下些功夫

    也有一些笨办法,一次取一批出来,反正是数组,下标从0 开始依次递增。

  • 回答于 2017-04-06 09:17 举报

    sort_by 值如果存在就用它 如果不存在就用ID

  • 回答于 2017-04-06 09:26 举报

    查询 sort_by大于当前sort_by 和sort_by 小于当前sort_by 的排序还是按:先根据“sort_by”倒序排列,然后根据“id”倒序排列这样试试

  • 回答于 2017-04-07 11:38 举报

    我只能告诉你两句sql语句

    select * from table where id>8 order by id asc limit 1
    select * from table where id<8 order by id desc limit 1
    
    1 条回复
    回复于 2017-04-07 11:48 回复

    如果是这样就简单了,表中有另外一个排序字段的

  • 回答于 2018-01-23 16:31 举报
您需要登录后才可以回答。登录 | 立即注册
hnlyjxw
副总裁

hnlyjxw 河南洛阳

注册时间:2015-07-27
最后登录:2022-07-04
在线时长:64小时19分
  • 粉丝6
  • 金钱5470
  • 威望0
  • 积分6110

热门问题