mysql互换表中两列数据方法讲义
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,下文内容主要给大家带来mysql互换表中两列数据方法讲义,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。1.创建表及
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
西安纸贵互联网科技有限公司
互联网金融监管科技数据
唐信互联网科技
壹账通互联网科技
西藏七维空间互联网科技有限公司
互联网还是高科技吗
武汉健翔互联网络科技有限公司
知域互联网科技有限公司大骗子
互联网科技与大数据专业
科技类公司包括互联网吗
工业互联网科技创业
世界互联网科技成果奖
艺电能源互联网科技有限公司招聘
张家口科技产业互联网平台
科技信息时代互联网发展
第三届互联网大会安防黑科技
平安好医生打造互联网科技医疗
颐高云石互联网科技
小牛互联网科技有限公司地址
深圳互联网络科技有限公司
互联网 新科技
居家互联网科技有限公司
互联网科技生活的内容
科技与互联网的利与弊
深圳前海聚择互联网科技有限公司
浙江互联网科技研学营
陕西九四连强互联网科技有限公司
互联网科技对化妆品行业
小牛互联网科技有限公司地址