mysql互换表中两列数据方法讲义
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,下文内容主要给大家带来mysql互换表中两列数据方法讲义,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。1.创建表及
千家信息网最后更新 2025年11月08日mysql互换表中两列数据方法讲义
下文内容主要给大家带来mysql互换表中两列数据方法讲义,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
1.创建表及记录用于测试
CREATE TABLE `product` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品id', `name` varchar(50) NOT NULL COMMENT '产品名称', `original_price` decimal(5,2) unsigned NOT NULL COMMENT '原价', `price` decimal(5,2) unsigned NOT NULL COMMENT '现价', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `product` (`id`, `name`, `original_price`, `price`) VALUES (NULL, '雪糕', '5', '3.5'), (NULL, '鲜花', '18', '15'), (NULL, '甜点', '25', '12.5'), (NULL, '玩具', '55', '45'), (NULL, '钱包', '285', '195');
mysql> select * from product;+----+--------+----------------+--------+| id | name | original_price | price |+----+--------+----------------+--------+| 1 | 雪糕 | 5.00 | 3.50 || 2 | 鲜花 | 18.00 | 15.00 || 3 | 甜点 | 25.00 | 12.50 || 4 | 玩具 | 55.00 | 45.00 || 5 | 钱包 | 285.00 | 195.00 |+----+--------+----------------+--------+5 rows in set (0.00 sec)
2.互换original_price与price的值
新手可能会使用以下方法进行互换
update product set original_price=price,price=original_price;
但这样执行的结果只会使original_price与price的值都是price的值,因为update有顺序的,
先执行original_price=price , original_price的值已经更新为price,
然后执行price=original_price,这里相当于没有更新。
执行结果:
mysql> select * from product;+----+--------+----------------+--------+| id | name | original_price | price |+----+--------+----------------+--------+| 1 | 雪糕 | 5.00 | 3.50 || 2 | 鲜花 | 18.00 | 15.00 || 3 | 甜点 | 25.00 | 12.50 || 4 | 玩具 | 55.00 | 45.00 || 5 | 钱包 | 285.00 | 195.00 |+----+--------+----------------+--------+5 rows in set (0.00 sec)mysql> update product set original_price=price,price=original_price;Query OK, 5 rows affected (0.00 sec)Rows matched: 5 Changed: 5 Warnings: 0mysql> select * from product;+----+--------+----------------+--------+| id | name | original_price | price |+----+--------+----------------+--------+| 1 | 雪糕 | 3.50 | 3.50 || 2 | 鲜花 | 15.00 | 15.00 || 3 | 甜点 | 12.50 | 12.50 || 4 | 玩具 | 45.00 | 45.00 || 5 | 钱包 | 195.00 | 195.00 |+----+--------+----------------+--------+5 rows in set (0.00 sec)
正确的互换方法如下:
update product as a, product as b set a.original_price=b.price, a.price=b.original_price where a.id=b.id;
执行结果:
mysql> select * from product;+----+--------+----------------+--------+| id | name | original_price | price |+----+--------+----------------+--------+| 1 | 雪糕 | 5.00 | 3.50 || 2 | 鲜花 | 18.00 | 15.00 || 3 | 甜点 | 25.00 | 12.50 || 4 | 玩具 | 55.00 | 45.00 || 5 | 钱包 | 285.00 | 195.00 |+----+--------+----------------+--------+5 rows in set (0.00 sec)mysql> update product as a, product as b set a.original_price=b.price, a.price=b.original_price where a.id=b.id;Query OK, 5 rows affected (0.01 sec)Rows matched: 5 Changed: 5 Warnings: 0mysql> select * from product;+----+--------+----------------+--------+| id | name | original_price | price |+----+--------+----------------+--------+| 1 | 雪糕 | 3.50 | 5.00 || 2 | 鲜花 | 15.00 | 18.00 || 3 | 甜点 | 12.50 | 25.00 || 4 | 玩具 | 45.00 | 55.00 || 5 | 钱包 | 195.00 | 285.00 |+----+--------+----------------+--------+5 rows in set (0.00 sec)
本文讲解了关于mysql互换表中两列数据方法,更多先关内容请关注php'中文网。
相关推荐:
如何通过php生成0~1随机小数方法
关于mysql 时间戳格式化函数from_unixtime的使用说明
关于mysql函数concat与group_concat使用说明事项
以上就是关于mysql互换表中两列数据方法的讲解的详细内容,更多请关注其它相关文章!
方法
玩具
甜点
钱包
雪糕
鲜花
数据
内容
结果
产品
使用说明
函数
更多
更新
讲义
不同
下文
专业
中文网
书籍
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
海康威视共享软件开发
魔兽世界最平衡服务器
高防青岛服务器
2018网络安全倡议书图解
可增加文本框数据库怎么存
广东品质软件开发服务推广
网络安全产品销售资质
学校网络安全主题班教案
公交线路数据库
数据库查询历史事件
六安视频点播软件开发要多少钱
问道数据库怎么删角色
网络安全2020年主题
数据库索引默认顺序
深圳电信网络技术
序列怎么和数据库关联
西集国家网络安全产业园地铁
暗黑二重制版服务器怎么样
青岛智能仓库管理软件开发定制
防汛网络安全系统 主要业务
南通学创网络技术有限公司
软件开发公司税收
网络安全技术有哪些专业
上市公司网络安全软件龙头
无机化学答案软件开发
小学生校园网络安全教育活动
深圳电信网络技术
国际服哪个服务器有账号
成都海锋网络技术服务
思科的dns服务器