0

我正在努力解决这个问题,但没有走得太远。如果有人可以提供帮助,那就太好了。

基本上我需要从表中的所有项目中获取上一个和下一个项目。如果它是最后一项,我需要循环到第一项。如果是第一项,则前一项必须是最后一项。否则项目需要递增和递减。我需要某种方式在一个查询中添加它,以便它们以相同的顺序排列,或者在我的应用程序中识别,以便我可以看到哪个是前一个按钮,哪个是下一个按钮。到目前为止,这是 MySQL,但不正确。我使用的是 22083,因为这是表中的最后一项。

SELECT id, alias_title from image 
where ( 
         id = IFNULL((select min(id) from image where id > 22083), (select min(id) from image)) 
         or id = IFNULL((select max(id) from image where id < 22083),(select min(id) from image))
      )
4

1 回答 1

0

考虑这个例子。为简单起见,它依赖于被索引的事实i,但更强大的方法可以强加一些正确的排序......

SELECT * FROM ints;
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+---+

SELECT * FROM ints WHERE i >=5 UNION SELECT * FROM ints;
+---+
| i |
+---+
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
+---+
于 2013-05-11T11:40:28.217 回答