gpt4 book ai didi

mysql:按最近的id排序

转载 作者:行者123 更新时间:2023-11-29 01:44:46 25 4
gpt4 key购买 nike

我有一个查询返回一些与特定用户 (Bob) 相关的用户。

我需要检索最近的记录,也就是说,我必须返回 ID 列靠近 Bob 的 ID 的用户。

例如:

         ID

Tom 5
Mike 8
Bob 10
Jack 12
Brian 13

查询:

SELECT users.* FROM users
INNER JOIN neighboors on neighboors.neighboor_id = users.id #ignore this join, just to exemplify
WHERE neighboors.user_id = 10 # bobs id
ORDER BY something
LIMIT 3 # i want to return only the 3 nearest users (according to the table above:mike, jack and brian)

我怎样才能做到这一点?

已更新

逻辑是,用户可以种树,每棵树都有一个品种。该查询应返回种植相同树种的用户。

为什么按 id 的接近程度排序很重要?客户想要这样 :) 没有其他原因。

最佳答案

试试这个,应该做你需要的:

SELECT users.* FROM users
INNER JOIN neighboors ON neighboors.neighboor_id = users.id
WHERE neighboors.user_id = 10
ORDER BY ABS(neighboors.user_id - 10)
LIMIT 3

ABS在这种情况下,函数用于计算 “距离”user_id 选定值(由 WHERE ... 筛选的值)的距离。

为了在大型表上获得更好的性能,您必须索引(如果还没有)列:neighboors.user_id

关于mysql:按最近的id排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9849706/

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