mysql怎么互换表中两列数据


这篇文章主要介绍“mysql怎么互换表中两列数据”,在日常操作中,相信很多人在mysql怎么互换表中两列数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql怎么互换表中两列数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!解决方案
使用update命令,这完全得益于MySQL SQL命令功能的强大支持。表格中原来数据类似如下: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 |现在要求互换original_price与price的值,使用如下方法:验证一下: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 |扩展问题上面直接使用update交换一个表中两列(自然是同一数据类型)的例子有一个特殊情况,其实也正是我要解决的真正问题。具体地说,我们的用户在初期准备的部分数据中对于表中的两列数据弄反了。但是,对于以后输入的数据却没有弄反。这种情况下,我们需要找出前面弄反的记录范围,然后针对这部分开发云主机域名记录实施上面的操作。但遗憾的是,MySQL中的update语句是不支持limit子句的。官方正规的描述如下:For the multiple-table syntax, UPDATE updates rows in each table named in table_references that satisfy the conditions. Each matching row is updated once, even if it matches the onditions multiple times. For multiple-table syntax, ORDER BY and LIMIT cannot be used.
我试验了一下,的确如此。无奈我们只能使用变通的办法。其中一个方法是,先把上面指定范围的记录选择出来并生成到一个临时表中,然后针对原表和这个临时表使用update语句实现交换上面范围记录中各个对应字段值的目的。但这里有一个小插曲是:MySQL不直接支持类似于MS SQL Server的select into newtable这样的语句。不过,我们可以使用变通的其他语句实现,如下:上面语句的含义是,生成一个新表tmp,该表中的字段及值是另一个表mv_person2中从第1到第10条记录数据。这样便实现了上面生成一个临时表之目的。有了上面的临时表tmp,再使用update语句实现交换表格mv_person2中指定范围(例如从第1到第10条记录数据)两列便轻松了。答案如下:到此,关于“mysql怎么互换表中两列数据”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: 为什么我的mysql在dos打不开

为什么开发云主机域名我的mysql在dos打不开?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。为什么我的mysql在dos打不开安装mysql后打不开的原因可能是MySQL服务未启…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/20 14:38
下一篇 06/20 14:38

相关推荐