2014-11-25 46 views
0

在MySQL中,我有一個這樣的表:如何爲MySQL中的每一行分配一個不同的值?

Table 1 
a b c 

1 2 5 
2 1 6 
5 2 2 
4 8 4 

而且持續了數千行。我如何爲每行分配一個不同的整數(理想情況下從1開始,每行增加1)?

+1

你沒有任何'AUTO_INCREMENT'列嗎? – 2014-11-25 03:21:57

+0

這些工作如何? – japem 2014-11-25 03:24:12

回答

0

在查詢中,你只使用一個變量:

select t.*, (@rn := @rn + 1) as seqnum 
from table1 t1 cross join 
    (select @rn := 0) vars; 

我會建議使用order by與相應的列,以確保值是你想要的順序。

2

最簡單的可能是添加自動遞增的主鍵(假設你沒有一個主鍵集):

ALTER TABLE t ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    ADD PRIMARY KEY (id); 
+1

工作過,謝謝! – japem 2014-11-25 03:27:13

0

這應該創建一個名爲「身份證」的新柱和自動分配在整數無論它現在檢索記錄的順序。

ALTER TABLE `table_name` ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT 
+0

羅比打敗了我。 – 2014-11-25 03:28:49

相關問題