0

私はこれを解決しようとしていますが、あまり進んでいません。誰かが助けることができれば素晴らしいでしょう。

基本的に、テーブル内のすべてのアイテムから前のアイテムと次のアイテムが必要です。それが最後のアイテムである場合、最初のアイテムにループする必要があります。それが最初のアイテムである場合、前のアイテムは最後のアイテムである必要があります。それ以外の場合、項目を 1 ずつ増減する必要があります。これを1つのクエリに追加して、同じ順序にするか、識別して、アプリで前のボタンと次のボタンを確認できるようにする方法が必要です。これはこれまでの 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 に答える