2015-11-05 69 views
2
id num date    Attempt 
1 555 2015-01-03 01:00:00 1 
1 555 2015-01-03 02:00:00 2 
1 555 2015-01-03 03:00:00 3 
1 555 2015-01-01 04:03:03 4 
1 555 2015-01-02 06:00:00 5 
1 555 2015-01-06 17:55:24 6 
1 555 2015-01-07 18:00:00 7 
2 666 2015-01-07 01:00:00 1 
2 666 2015-01-07 02:00:00 2 

嗨,我有上述表格佈局,但「嘗試」字段爲空。MySQL根據日期添加計數字段

我試圖根據ID,日期更新嘗試字段。

我用這個

SET @x = 0; 
UPDATE attempts 
SET attempt = (@x:[email protected]+1) ORDER BY id, date 

的事情是我需要那麼它拿起也by子句上添加新的ID組,並再次重新從1遞增的編號只是繼續到下一個ID所以我的成績目前是這樣的:

id num date     Attempt 
1 555 2015-01-03 01:00:00 1 
1 555 2015-01-03 02:00:00 2 
1 555 2015-01-03 03:00:00 3 
1 555 2015-01-01 04:03:03 4 
1 555 2015-01-02 06:00:00 5 
1 555 2015-01-06 17:55:24 6 
1 555 2015-01-07 18:00:00 7 
2 666 2015-01-07 01:00:00 8 
2 666 2015-01-07 02:00:00 9 

所以8 & 9應該是1和2分別由於新的ID。

任何人都可以幫助一些代碼來獲得我想要的結果嗎?

回答

2

這裏有一個方法:

SET @x = 0; 
SET @num = -1; 
UPDATE attempts 
    SET attempt = if(@num = num, @x := @x+1, 
        if(@num := num, @x := 1, @x := 1) 
        ) 
    ORDER BY id, date; 

不要明確是否要通過id, datenum, date訂購。

+0

完美謝謝! – Stuart