如何为MySQL中的每一行分配一个不同的值?

时间:2014-11-25 03:20:10

标签: mysql

在MySQL中,我有一个这样的表:

Table 1
a    b    c

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

它持续了数千行。如何为每一行分配一个不同的整数(理想情况下从1开始,每行增加1)?

3 个答案:

答案 0 :(得分:2)

最简单的可能是添加一个自动递增的主键(假设您没有主键设置):

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

答案 1 :(得分:0)

在查询中,您只需使用变量:

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

我建议将order by与适当的列一起使用,以确保值符合您的要求。

答案 2 :(得分:0)

这应创建一个名为' id'的新列。并以当前检索记录的顺序自动分配整数。

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