我想制作搜索结果的导航链接,但不确定如何在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)?
答案 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查询。