gpt4 book ai didi

mysql - 如何修改一个 'select'列中的两个变量?

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

这是我想要做的事情的描述。用人类的话来说:当我的源表(my_table)中的rank=2时,我希望名为rank2的列递增(++),并且我希望另一列递减(--)。具体来说,我希望rank1列减少一位。

set @rank1         = 0 ;
set @rank2 = 0 ;
-- ...

SELECT
create_date,
if(rank=1,@rank1:= @rank1+1,@rank1) rank1,
if(rank=2,(@rank2:=@rank2+1 and @rank1:=@rank1-1),@rank2) rank2
from my_table;

my_table 中我关心的列是

create_date datetime, 
rank int

如果重要的话,我的 select 语句将创建更多的“排名”列(rank3、rank4 等)——为了简单起见,我将其省略。

最佳答案

我相信这就是我正在寻找的逻辑:

select 
if(rank=1,@rank1:=@rank1+1,if(rank=2,@rank1:=@rank1-1,@rank1) rank1,
if(rank=2,@rank2:=@rank2+1,if(rank=3,@rank2:=@rank2-1,@rank2) rank2
from my_table;

这种模式会持续到更高的排名......

关于mysql - 如何修改一个 'select'列中的两个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42463142/

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