当前位置:   article > 正文

mysql如何交换两列的值

mysql如何交换两列的值
  1. create table test.student(
  2. id int(11) auto_increment primary key,
  3. name varchar(255),
  4. des varchar(255)
  5. )
  6. insert into test.student(name,des) values
  7. ('desc1','name1'),
  8. ('desc2','name2'),
  9. ('desc3','name3'),
  10. ('desc4','name4'),
  11. ('desc5','name5'),
  12. ('desc6','name6'),
  13. ('desc7','name7'),
  14. ('desc8','name8'),
  15. ('desc9','name9')
  16. 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的关联条件,使用主键关联 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/947134
推荐阅读
相关标签
  

闽ICP备14008679号