在MySQL中,我有一個這樣的表:如何爲MySQL中的每一行分配一個不同的值?
Table 1
a b c
1 2 5
2 1 6
5 2 2
4 8 4
而且持續了數千行。我如何爲每行分配一個不同的整數(理想情況下從1開始,每行增加1)?
在MySQL中,我有一個這樣的表:如何爲MySQL中的每一行分配一個不同的值?
Table 1
a b c
1 2 5
2 1 6
5 2 2
4 8 4
而且持續了數千行。我如何爲每行分配一個不同的整數(理想情況下從1開始,每行增加1)?
在查詢中,你只使用一個變量:
select t.*, (@rn := @rn + 1) as seqnum
from table1 t1 cross join
(select @rn := 0) vars;
我會建議使用order by
與相應的列,以確保值是你想要的順序。
最簡單的可能是添加自動遞增的主鍵(假設你沒有一個主鍵集):
ALTER TABLE t ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (id);
工作過,謝謝! – japem 2014-11-25 03:27:13
這應該創建一個名爲「身份證」的新柱和自動分配在整數無論它現在檢索記錄的順序。
ALTER TABLE `table_name` ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT
羅比打敗了我。 – 2014-11-25 03:28:49
你沒有任何'AUTO_INCREMENT'列嗎? – 2014-11-25 03:21:57
這些工作如何? – japem 2014-11-25 03:24:12