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的关联条件,使用主键关联

相关推荐
m0_624578592 小时前
MySQL主从复制支持跨版本吗_不同版本间同步的注意事项
jvm·数据库·python
a8a3023 小时前
Laravel 10.x核心特性深度解析
android
2401_871492853 小时前
如何在 React Router v6 中正确配置多路由组件显示
jvm·数据库·python
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.3 小时前
《redis-cluster 集群部署完全手册(含扩容+缩容)》
数据库·redis·缓存
snow@li4 小时前
数据库-MongoDB:常用语法 / MongoDB 核心知识技能梳理
数据库·mongodb
想躺平的小羊4 小时前
关于金额在数据库设置类型问题
数据库
神仙别闹4 小时前
基于Python(Django)+MySQL 实现(Web)SQL智能检测系统的设计与实现
python·mysql·django
zhangchaoxies4 小时前
MySQL触发器能否监控特定用户操作_结合审计功能实现分析
jvm·数据库·python
chushiyunen4 小时前
faiss向量检索库(并非向量数据库)
数据库·faiss
angerdream4 小时前
Android手把手编写儿童手机远程监控App之UUID
android