根据距离和活跃时间对用户列表进行排序

2022-12-13 15:52:29 +08:00
 awanganddong

现在需求是这样的,

首先排序同城最活跃的, 然后排序同省最活跃的, 然后排序全国最活跃的的,

这个怎么实现比较好

1165 次点击
所在节点    程序员
11 条回复
7911364440
2022-12-13 16:05:41 +08:00
三遍 sort ?
awanganddong
2022-12-13 16:09:36 +08:00
这性能比较低下,
有一种方案是后端判断是否存在同城,同省,然后把参数反给前端,然后前端作为参数传给后端。
awanganddong
2022-12-13 16:11:00 +08:00
后端现在存在的值为两种,城市 code 码,经纬度。
jeesk
2022-12-13 16:25:47 +08:00
redis
awanganddong
2022-12-13 16:29:52 +08:00
还有一种方案是

abs(当前城市码-其他城市码) 排序
time 排序
wangxiaoaer
2022-12-13 16:44:40 +08:00
弄个 view ,增加几列,把每类活跃值计算进去,然后排序不就 ok 了?
YVAN7123
2022-12-13 16:52:02 +08:00
城市码是有规律的吧, 城市码 = 省级规划码 + 城市规划码 直接用这个规律可以进行城市和省级排序了吧
v2exe2v
2022-12-13 16:53:37 +08:00
面向 V2EX 编程?
opengps
2022-12-13 17:05:43 +08:00
先写出每个结果集(带着各自的 where ),三个结果 union 起来就行
whoosy
2022-12-13 17:26:41 +08:00
问下 chatGPT
xuanbg
2022-12-13 21:57:56 +08:00
3 个 select 结果 uinon 起来就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/902219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX