gpt4 book ai didi

mysql - 如何制作描述元素顺序的列?

转载 作者:行者123 更新时间:2023-11-30 21:28:36 26 4
gpt4 key购买 nike

我想在表中添加一列,该列按其他值描述行的顺序。例如,我有以下数据:

popularity = 1, id =1
popularity = 1, id =2
popularity = 2, id =3
popularity = 3, id =4
popularity = null, id=5

我想要一个查询来获取以下内容:

popularity = 1, id =1, newOrder = 4
popularity = 1, id =2, newOrder = 3
popularity = 2, id =3, newOrder = 2
popularity = 3, id =4, newOrder = 1
popularity = null, id=5, newOrder = 5

此处适用的规则是:- 相同人气,按id排序- 人气最高的是新订单上的第一名- 空流行度在新订单上最低

我尝试这样做是因为该表有数百万行,并且按流行度和使用偏移量进行分页真的很慢。因此,有了这个新订单,我就可以执行类似 id > page*page_amount 的操作。

如果有一个设置这个值的更新查询会很棒,因为带有偏移量的选择查询真的很慢。

谢谢

最佳答案

我想你想要:

select . . .,
row_number() over (order by (popularity is not null) desc, popularity desc, id) as newOrder
from t;

关于mysql - 如何制作描述元素顺序的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57499053/

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