当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在SQL中指定一个后找到下一条记录?》经验,为你挑选了2个好方法。

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

即,如果表有:

id, fruit
--  -----
1   apples
2   pears
3   oranges

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

SELECT * FROM table where previous_record has id=1 order by id;

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

将返回:

2, pears

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

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

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



1> Vinko Vrsalo..:

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

SELECT id FROM table WHERE fruit > 'apples' ORDER BY fruit LIMIT 1



2> Ólafur Waage..:
SELECT * FROM table WHERE id > 1 ORDER BY id LIMIT 1

更简单

更新:

SELECT * FROM table  WHERE fruit > 'apples' ORDER BY fruit LIMIT 1

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有