【问题标题】:MySQL Next / Previous Alphabetical RowMySQL 下一个/上一个字母行
【发布时间】:2025-11-24 13:00:02
【问题描述】:

这可能真的很容易,只是周五的大脑问题,但我在这里挣扎......

我有一个 MySQL 表,其中包含以下文本条目:

Elephant
Apple
Dog
Carrot
Banana

我拉一排,即Dog。我现在想拉上一个字母行和下面的字母行,即 Carrot & Elephant

所以..

SELECT text FROM table WHERE text >= 'Dog' ORDER BY text LIMIT 1

给我下一个按字母顺序排列的行。不过,

SELECT text FROM table WHERE text <= 'Dog' ORDER BY text LIMIT 1

也许显然给了我表格的第一行字母。我想我可以得到桌子位置,然后按字母顺序订购并做一个 LIMIT x-1,1 来获得以前的位置,但这看起来很笨拙。

我确定我遗漏了一些明显的东西,但我的头很痛。

想法?

【问题讨论】:

  • 将整个表格读入链接列表之类的东西,然后将下一个和上一个项目放到您的后一个项目中不是更容易吗?
  • 看看我对之前类似问题的回答:*.com/questions/1259458/…

标签: mysql


【解决方案1】:

ORDER BY text DESC

【讨论】:

    【解决方案2】:

    这是最干净、最有效的方法: 下一步:

     select min(name) people where name > 'Dog';
    

    获取上一个:

     select max(name) people where name < 'Dog';
    

    【讨论】:

      最近更新 更多