我想制作搜索结果的导航链接,但不确定如何在 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)?
我想制作搜索结果的导航链接,但不确定如何在 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)?
更新的答案
您可以尝试这样的查询,如果它可以帮助您。
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 查询来执行此操作会更好。