2010-12-14 62 views
37

對於所有行,我的表字段的一個字段設置爲0。但我想在更新查詢中通過步驟1更新爲增量值。在mysql中增量更新值

我怎麼能在mysql中做到這一點?

+0

澄清:您在問如何更改現有的數據集,以便增加數字? – 2010-12-14 12:13:55

+0

不,我最近添加了這個字段,所以它默認設置爲0,它不應該是自動增量的feature.i只是想填充有效的數據。我可以澄清它。 – 2010-12-14 12:16:24

回答

92

試試這個:

mysql> select @i := 0; 
mysql> update bar set c = (select @i := @i + 1); 
3

一種方法是使用AUTO_INCREMENT列而不是原始列創建新表,將所有舊數據插入新表中,然後重新命名並刪除舊的。

另一種方法是使用MySQL variable運行更新查詢,該查詢會爲每行生成一個遞增的數字(以模擬其他DBMS系統中的ROW_NUMBER()函數)。

+0

正如我記得我在使用mysql變量之前做過的,但是現在我不記得解決方案了。 ;( – 2010-12-14 12:19:47

5
SET @a = 0; 
UPDATE customers SET id = @a:[email protected]+1; 

你可以去這一點。

+0

可以請你告訴我如何我可以在PHP中實現這個? – 2017-05-10 10:25:26