+-
MySql – 如何获取上一行中的值和下一行中的值?
参见英文答案 > How to get next/previous record in MySQL?                                    22个
我有下表,名为Example:

id(int 11) //not autoincriment
value (varchar 100)

它有以下几行数据:

0  100
2  150
3  200
6  250
7  300

请注意,id值不是连续的.

到目前为止我写了这个SQL:

SELECT * FROM Example WHERE id = 3

但是,我不知道如何获取前一个id的值和下一个id的值…

如果id = 3,请帮助我获得之前的值和下一个值?

P.S.:在我的例子中它将是:previous – 150,next – 250.

最佳答案
选择下面的下一行:

SELECT * FROM Example WHERE id < 3 ORDER BY id DESC LIMIT 1

选择上面的下一行:

SELECT * FROM Example WHERE id > 3 ORDER BY id LIMIT 1

在一个查询中选择两者,例如使用UNION:

(SELECT * FROM Example WHERE id < 3 ORDER BY id DESC LIMIT 1)
 UNION
(SELECT * FROM Example WHERE id > 3 ORDER BY id LIMIT 1)

那是什么意思?

点击查看更多相关文章

转载注明原文:MySql – 如何获取上一行中的值和下一行中的值? - 乐贴网