我有一张桌子 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行不通的。
这可能吗?
谢谢。
还没有这样做。
上一页
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)
你可以这样做:
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来获取上一个或下一个。