gpt4 book ai didi

mysql - 如何通过主键选择行,一行 'above'和另一列 'below'?

转载 作者:行者123 更新时间:2023-11-29 02:06:05 24 4
gpt4 key购买 nike

好的,我得到了一个包含“id”列和“score”列的“users”表。 'id'是主键,'score'可以是任意正整数,用户可以有相同的分数。

我需要选择 3 行:

  • “目标用户”,即“id”的单行
  • 表格按'score'排序时目标用户正上方的用户
  • 表格按'score'排序时目标用户正下方的用户

关于如何在 SQL 中执行此操作的任何建议?谢谢!

更新

抱歉,我现在意识到我需要对如何处理具有相同分数的多行做出更多选择。我已决定排除并列分数,因此我要从目标用户中寻找下一个最高分数和下一个最低分数的用户。

示例数据:

id  score  
1 0
2 5
3 9
4 5
5 5 *
6 5
7 8 *
8 3 *

所以,如果我的目标用户有 id = 5,我想要 id 为 7、5 和 8 的行

最佳答案

首先,查询该特定用户的分数:

select  score
from users
where id = 42

假设用户 42 的分数是 6。然后您可以像这样查询下一个用户:

select  name
, score
from users
where score > 6
order by
score
limit 1

和以前的用户喜欢:

select  name
, score
from users
where score < 6
order by
score desc
limit 1

关于mysql - 如何通过主键选择行,一行 'above'和另一列 'below'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5796074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com