如何在SQL中指定一个后找到下一条记录?

Ben*_*Ben 19 mysql

我想使用单个SQL查询(在MySQL中)来查找我指定的记录之后的记录.

即,如果表有:

id, fruit
--  -----
1   apples
2   pears
3   oranges
Run Code Online (Sandbox Code Playgroud)

我希望能够进行如下查询:

SELECT * FROM table where previous_record has id=1 order by id;
Run Code Online (Sandbox Code Playgroud)

(显然这不是真正的SQL语法,我只是使用伪SQL来说明我想要实现的目标)

将返回:

2, pears
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案只是获取所有记录,并在PHP中查看它们,但这比我想要的慢.有更快的方法吗?

我会对返回两行的东西感到满意 - 即具有指定值的行和下一行.

编辑:对不起,我的问题措辞严厉.不幸的是,我对"next"的定义不是基于ID,而是基于水果名称的字母顺序.因此,我上面的例子是错误的,应该返回橙子,因为它在苹果之后按字母顺序排列.有没有办法对字符串而不是ID进行比较?

Vin*_*vic 33

在问题编辑和下面的简化之后,我们可以将其更改为

SELECT id FROM table WHERE fruit > 'apples' ORDER BY fruit LIMIT 1
Run Code Online (Sandbox Code Playgroud)


Óla*_*age 7

SELECT * FROM table WHERE id > 1 ORDER BY id LIMIT 1
Run Code Online (Sandbox Code Playgroud)

更简单

更新:

SELECT * FROM table  WHERE fruit > 'apples' ORDER BY fruit LIMIT 1
Run Code Online (Sandbox Code Playgroud)