赞
踩
- create table test.student(
- id int(11) auto_increment primary key,
- name varchar(255),
- des varchar(255)
- )
-
- insert into test.student(name,des) values
- ('desc1','name1'),
- ('desc2','name2'),
- ('desc3','name3'),
- ('desc4','name4'),
- ('desc5','name5'),
- ('desc6','name6'),
- ('desc7','name7'),
- ('desc8','name8'),
- ('desc9','name9')
-
- select * from test.student;
如上图所示name和des两列数据错位了。如何修复了。
最开始的想法
update test.student set name=des ,des=name
发现结果 好像是先把des赋值给name了,然后再执行set des=name所以数据不对。
如何解决呢?我看到网上有几种方法
1.多加一列 比如add column tmp , set tmp=des,des=name,name=tmp
2.使用一个临时表 具体也没看。
我才用另外一种方法
update test.student t1 inner join test.student t2 on t1.id=t2.id set t1.name=t2.name ,t1.des=t2.des
简单的一个思路,唯一注意的是要注意on的关联条件,使用主键关联
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。