2013-05-09 104 views
0

在MySQL:創建計數的值顯示出來的另一列的次數列,從同一個表 - MySQL的

比方說我有這個表:

id | name | count | 
1 | John |  | 
2 | John |  | 
3 | John |  | 
4 | Mary |  | 
5 | Lewis|  | 
6 | Lewis|  | 
7 | Max |  | 
8 | Max |  | 

名稱已經分組了,所以同名會一起出現。 現在我想表是這樣的:

id | name | count | 
1 | John | 1 | 
2 | John | 2 | 
3 | John | 3 | 
4 | Mary | 1 | 
5 | Lewis| 1 | 
6 | Lewis| 2 | 
7 | Max | 1 | 
8 | Max | 2 | 

注意到它自動遞增計數每次的價值有相同名稱的重複。

謝謝!

+0

你想要的列的表化,或者你只是想獲得該列在查詢/視圖結果? – 2013-05-09 10:32:33

回答

1

您可以使用用戶變量。

事情是這樣的: -

UPDATE somepeople a 
INNER JOIN (
SELECT id, name, IF(@PrevName=name, @aCnt := @aCnt + 1, @aCnt := 1) AS sequence, @PrevName:=name 
FROM somepeople, 
(SELECT @aCnt:=1, @PrevName:='') Sub1 
ORDER BY name, id) b 
ON a.id = b.id 
SET a.count = b.sequence 
+0

完美,像魅力一樣工作!謝謝。 – dazito 2013-05-09 10:52:55

相關問題