mysql互换表中两列数据方法讲义
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,下文内容主要给大家带来mysql互换表中两列数据方法讲义,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。1.创建表及
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
瑶海区软件开发培训班
微信小程序调用数据库
凯佳盛特网络安全
如何建立云端数据库
河北联智创意网络技术项目
lol服务器炸了
山西it软件开发报价
2017网络安全大事件
数据库核心问题
安装工程项目管理软件开发
网络安全法所指网络安全
网络安全靠人民班会心得
数据库 计算机二级
网络安全对政府的意义
郑州驰瀚网络技术有限公司
网络技术基础体温备孕
视觉软件开发需要学习哪些课程
戴尔服务器系统重装步骤
属于数据库技术应用的是
预防网络安全班会主题
广西管理软件开发公司
家用服务器能实现哪些功能
网络安全技术有限公司名字
福州海纳百川网络技术
紫晶文档数据库在哪里
香港物理高防服务器
xm外汇交易所服务器
房地产企大数据库
蜜蜂花园软件开发
k8s集群挂掉一台服务器