mysql在sortindex之前和之后获取行

时间:2015-03-19 13:43:49

标签: mysql sql

我有一张这样的表:

id    sortindex
1     15
2     3
4     1
5     4
8     6
11    2
13    5

我想在sortindex之前和之后获取行。

例如:

我已经给了id 5(所以,sortindex 4) 该表应按sortindex(ASC)

排序

现在我想要获得前一行 应该回来:

id    sortindex
2     3

和之后的行 应该回来:

id    sortindex
13    5

我必须如何构建查询? (我想要两个Query:一个用于之前,一个用于之后)

2 个答案:

答案 0 :(得分:3)

SELECT * FROM table1 WHERE sortindex < 4 ORDER BY sortindex DESC LIMIT 1
UNION ALL
SELECT * FROM table1 WHERE sortindex > 4 ORDER BY sortindex ASC LIMIT 1

答案 1 :(得分:0)

SELECT MAX(id), sortindex
FROM table
WHERE id < @id
UNION ALL
SELECT MIN(id), sortindex
FROM table
WHERE id > @id