比如我有个表user(name varchar(50),no varchar(4))
现在表中的列name已经有数据了(大约1000多),而且不重复。
比如:
name  no
----------
yang
wang
zhang
...
我想从上到下给所有人从1编号放入列no中,
操作完后应该是:
name  no
-----------
yang  1
wnag  2
zhang 3
...请问应该如何实现上面这个操作,
高手帮忙。

解决方案 »

  1.   


    set @x=1;
    update user set no=(select @x:=@x+1);
      

  2.   

    有点点小问题, 应该是set @x=0;还有一种解法是,修改表结构:
    alter table user modify no int auto_increment primary key;
      

  3.   

    楼上正解。另外可以参考下贴中的多种方法。http://blog.csdn.net/ACMAIN_CHM/archive/2009/04/20/4095531.aspx
    MySQL中的ROWNUM的实现 
      

  4.   

    如果数据表的name 和 no字段都有值,而且no字段的值不是连续的话,请问:怎么把no字段的值变成连续的?从1开始重新排列。