0
下面是我想要做的一個表徵。以人爲條件:當我的源表(my_table)中的rank = 2時,我希望我的列名爲rank2增加(++),並且我希望另一列向下遞增( - )。具體來說,我希望rank1列增加一個。如何修改一個'select'列中的兩個變量?
set @rank1 = 0 ;
set @rank2 = 0 ;
-- ...
SELECT
create_date,
if(rank=1,@rank1:= @rank1+1,@rank1) rank1,
if(rank=2,(@rank2:[email protected]+1 and @rank1:[email protected]),@rank2) rank2
from my_table;
我關心MY_TABLE的列是
create_date datetime,
rank int
如果它的事項,我的select語句將創建幾個 '排名' 列(rank3,rank4等) - 我爲了簡單起見,不要放棄。
樣本數據和預期的結果真的會澄清你想要做什麼。您的代碼似乎與您的描述無關。 –
@GordonLinoff,基本上如果我看到等級2,這意味着我的實體從1到2,而且我計算每個等級。所以我的意思是說rank2 ++,rank1--(因爲我有1個更少的rank1和更多的rank2)。 – ColinMac
。 。正如我所說,樣本數據和期望的結果將真正幫助解釋您正在嘗試做什麼。 –