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

相关推荐
- 羊羊不超越 -1 分钟前
App渠道来源追踪方案全面分析(iOS/Android/鸿蒙)
android·ios·harmonyos
wk灬丨42 分钟前
Android Kotlin Flow 冷流 热流
android·kotlin·flow
千雅爸爸43 分钟前
Android MVVM demo(使用DataBinding,LiveData,Fresco,RecyclerView,Room,ViewModel 完成)
android
时差9531 小时前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
让学习成为一种生活方式1 小时前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画1 小时前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
秋意钟2 小时前
MySQL日期类型选择建议
数据库·mysql
孤客网络科技工作室2 小时前
AJAX 全面教程:从基础到高级
android·ajax·okhttp
Dxy12393102162 小时前
python下载pdf
数据库·python·pdf
ac-er88883 小时前
MySQL如何实现PHP输入安全
mysql·安全·php