首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在SQL中找到指定记录之后的下一条记录?

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

Stack Overflow用户
提问于 2008-12-31 13:46:20
回答 9查看 69.7K关注 0票数 21

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

也就是说,如果该表具有:

代码语言:javascript
复制
id, fruit
--  -----
1   apples
2   pears
3   oranges

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

代码语言:javascript
复制
SELECT * FROM table where previous_record has id=1 order by id;

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

它将返回:

代码语言:javascript
复制
2, pears

我目前的解决方案是获取所有记录,然后在PHP中查看它们,但这比我希望的要慢。有没有更快的方法呢?

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

编辑:对不起,我的问题表达得很糟糕。不幸的是,我对“下一个”的定义不是基于ID,而是基于水果名称的字母顺序。因此,我上面的例子是错误的,应该返回橙子,因为它是按字母顺序排在苹果之后的。有没有一种方法可以对字符串而不是Is进行比较?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-12-31 13:49:19

编辑完问题并进行下面的简化后,我们可以将其更改为

代码语言:javascript
复制
SELECT id FROM table WHERE fruit > 'apples' ORDER BY fruit LIMIT 1
票数 35
EN

Stack Overflow用户

发布于 2008-12-31 13:54:55

代码语言:javascript
复制
SELECT * FROM table WHERE id > 1 ORDER BY id LIMIT 1

更简单

更新:

代码语言:javascript
复制
SELECT * FROM table  WHERE fruit > 'apples' ORDER BY fruit LIMIT 1
票数 8
EN

Stack Overflow用户

发布于 2008-12-31 13:51:09

我不熟悉MySQL语法,但是对于SQL Server,您可以使用"top“来做一些事情,例如:

代码语言:javascript
复制
SELECT TOP 1 * FROM table WHERE id > 1 ORDER BY id;

这里假设id字段是唯一的。如果它不是唯一的(比方说,一个外键),您可以执行类似的操作,然后重新连接同一个表。

因为我不使用MySQL,所以我不确定它的语法,但我想它应该是相似的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/402980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档