2015-06-20 60 views
0

我試圖將計算列值複製到我的表的正確列中,但嘗試第二次更新時,它不能識別計算字段。MySQL更新行號

這是我的選擇:

select @rownum:[email protected]+1 Rank, p.* 
from Poule p, 
    (SELECT @rownum:=0) r 
WHERE p.Activity LIKE 'BallgameOne' 
order by TotalPoints desc 

這導致與ROWNUMBER(rank)和POULE表的所有列的表。 Poule表中的其中一列稱爲Position

我想將列Rank的值複製到列Position。因爲更新時位置丟失了。所以我想根據返回的選擇進行更新。

有沒有可能這樣做?

+0

「Poule」表是否有主鍵? – Barmar

+0

是的,它被稱爲'Id' – neuzehie

回答

2

將表加入返回排名的查詢中。

UPDATE Poule AS p1 
JOIN (select @rownum:[email protected]+1 Rank, p.id 
     from Poule p, 
      (SELECT @rownum:=0) r 
     WHERE p.Activity LIKE 'BallgameOne' 
     order by TotalPoints desc) AS p2 
ON p1.id = p2.id 
SET p1.Position = p2.Rank