+-

参见英文答案 > How to get next/previous record in MySQL? 22个
我有下表,名为Example:
我有下表,名为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 – 如何获取上一行中的值和下一行中的值? - 乐贴网