通过排序查找下一个上一个记录

时间:2013-05-02 11:59:56

标签: mysql

我想制作搜索结果的导航链接,但不确定如何在MySQL中获取上一个和下一个ID?

让我们说,用户正在搜索东西并按年订购,结果集如下:

ID   YEAR
444  2013
333  2013
555  2013  <---- user clicks here (i.e. known ID is 555)
777  2012
111  2012

如何获取上一个和下一个ID(333,777)?

1 个答案:

答案 0 :(得分:1)

更新了答案

您可以尝试这样的查询,如果它可以帮助您。

select ID from tablename where phones like '99091505' AND ID = 555 order by year  
union all  
(select ID from tablename where phones like '99091505' AND ID < 555 order by year desc limit 1) 
union all  
(select ID from tablename where phones like '99091505' AND ID > 555 order by year asc limit 1)

旧答案

这不是具体的解决方案,而是实现你想要的一般想法!

首先,您应该保存在特定搜索位置找到的总行数。

因此,当用户第一次显示搜索结果时,您显然会向他显示第一个链接,并跟踪下一个链接。

因此,用户点击下一个按钮,创建您的查询以获取select xvy from tablename where abc=def order by year limit 1,1

因此,如果用户位于第5个搜索结果页面并点击下一个按钮,则您的查询将类似于

select ID from tablename where abc=def order by year limit 5,1;

我认为最好通过编程语言来实现,而不是通过mysql查询。