gpt4 book ai didi

MySQL:连续订单位置

转载 作者:行者123 更新时间:2023-11-29 07:08:40 27 4
gpt4 key购买 nike

使用 MySQL 我需要使用 ORDER BY 用列表中的位置填充一列。

我看到了这个帖子: mysql-get-row-position-in-order-by

上述帖子(第 2 个解决方案)的问题在于,当它在列表中遇到相同的值时,位置相同,但下一条记录出现“间隙”。我希望位置是连续的。

假设我有一个这样的列表:

   id   val
A 3
B 5
C 2
D 6
E 1
F 8
G 2
H 6

我想得到一个有序的输出,其位置列如下:

   id   val        pos
E 1 1
C 2 2
G 2 2
A 3 3
B 5 4
D 6 5
H 6 5
F 8 6

最佳答案

select id,val,
@pos := if(@prev<>val,@pos+1,@pos) as pos,
@prev := val as val
from table,(select @pos:=0,@prev:='') as r order by val

我同意其他建议,即最好在应用程序级别执行此操作。

关于MySQL:连续订单位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5857036/

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