これは私のテーブルです: 質問
id | name
-----+-----
2 | name 1
3 | name 2
4 | name 3
5 | name 4
10 | name 5
20 | name 6
21 | name 7
ID が 5 で、前後の行を取得する必要があるため、ID が 5 の場合は 4、5、10 を取得する必要があります
今、私はこれらのクエリを使用しています
select * from question where id = (select max(id) from question where id < 5);
select * from question where id = (select min(id) from question where id > 5);
私が探しているのは、単一のクエリです(可能な場合)。何かのようなもの
SELECT xx AS prevId, id, yy AS nextId FROM questions WHERE .......
前の ID または次の ID がない場合は、0 または -1 にする必要があります。
For example
id: 5
Return : 4, 5, 10
id:2
Return : -1, 2, 3
id: 21
Return 20, 21, -1
複数のクエリとPHPのいくつかの条件でこれを行う方法を知っていますif
が、可能であれば純粋なmySQLアプローチを探しています。