在Mysql中选择相邻的记录

Moa*_*oak 5 php mysql select

假设此表按日期排序

id      | date      | customer
3       | 2009-10-01| Frank
1       | 2010-10-11| Bob
4       | 2010-11-01| Mitchel
2       | 2010-11-02| Jim
Run Code Online (Sandbox Code Playgroud)

我想进行一个查询,以便知道ID = 4得到的行

$row[0]['id'] == 1 //previous
$row[1]['id'] == 4 //most recent/current
$row[2]['id'] == 2 //next
Run Code Online (Sandbox Code Playgroud)

一个mysql唯一的解决方案是最好的,但如果有一个优雅的PHP解决方案,也会很酷.

sha*_*mar 5

由于表是按date列排序的,您可以运行以下查询来获取它:


输出:这三个查询返回的结果(一一)如下:

id  date       customer
1   2010-10-11  Bob
4   2010-11-01  Mitchel
2   2010-11-02  Jim
Run Code Online (Sandbox Code Playgroud)