mysql如何交换两列的值

sql 复制代码
    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的关联条件,使用主键关联

相关推荐
帅得不敢出门30 分钟前
Android Framework预装traceroute执行文件到system/bin下
android
xzkyd outpaper32 分钟前
从面试角度回答Android中ContentProvider启动原理
android·面试·计算机八股
编程乐学39 分钟前
基于Android 开发完成的购物商城App--前后端分离项目
android·android studio·springboot·前后端分离·大作业·购物商城
why1514 小时前
微服务商城-商品微服务
数据库·后端·golang
柒间4 小时前
Elasticsearch 常用操作命令整合 (cURL 版本)
大数据·数据库·elasticsearch
这个家伙很笨5 小时前
了解Android studio 初学者零基础推荐(4)
android·ide·android studio
YUJIANYUE6 小时前
发立得信息发布系统房屋信息版(php+mysql)V1.0版
mysql·php
远方16096 小时前
18-Oracle 23ai JSON二元性颠覆传统
数据库·oracle·json