0

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

4

1 回答 1

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 查询来执行此操作会更好。

于 2013-05-02T12:14:53.643 回答