在 sql 中按字母顺序查找上一条/下一条记录?

gus*_*ino 5 mysql sql

我有一张桌子 people

id    name
----+-----
54    Tango
76    Alpha
95    Radio
Run Code Online (Sandbox Code Playgroud)

在 Web 上显示记录时,这些名称按字母顺序排列

Alpha, Radio, Tango
Run Code Online (Sandbox Code Playgroud)

假设我们正在查看Radio详细信息并希望使用某些链接导航到下(Tango)一条或上一条(Alpha)记录。

我怎样才能找到那些id's来创建所需的链接?

寻找下一个上级或下级是id行不通的。

这可能吗?

谢谢。

Ham*_*yan 5

还没有这样做。

上一页

SELECT Id FROM people WHERE name < 'Radio' ORDER BY name DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

下一个

SELECT Id FROM people WHERE name > 'Radio' ORDER BY name ASC LIMIT 1
Run Code Online (Sandbox Code Playgroud)


Mah*_*mal 4

你可以这样做:

SELECT name
FROM
(
   SELECT name, (@rownum := @rownum + 1) rank
   FROM people, (SELECT @rownum := 0) t
   ORDER BY name
) t WHERE rank = @n
Run Code Online (Sandbox Code Playgroud)

您应该使用新的排名数字列rank来创建这些链接。然后你应该控制参数的值@n来获取上一个或下一个。

SQL 小提琴演示