介绍
本篇文章给大家分享的是有关怎么在MySQL中是一个非标准更新语句,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
首先创建一个简单的示例表:
CREATE TABLE t1 ( id int,大敌; col1 int,大敌; col2 int ),, INSERT INTO  t1 VALUES (1, 1, 1); SELECT *,得到t1; id | col1 | col2 | - | - - - | - - - | 1 | 1 |大敌;,,1 | ———————————————— 版权声明:本文为CSDN博主“不剪发的托尼老师”的原创文章,遵循CC 4.0,冲锋队版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/horses/article/details/110238573CREATE TABLE  t1 ( id int,大敌; col1 int,大敌; col2 int ),, INSERT INTO  t1 VALUES (1, 1, 1); SELECT *,得到t1; id | col1 | col2 | - | - - - | - - - | 1 | 1 |大敌;,,,1 |
然后,我们对表t1中的数据进行更新:
UPDATE t1 SET col1 =, col1 +, 1, col2 才能=col1 WHERE id =, 1; SELECT col1, col2 得到t1;
请问查询语句返回的col1和col2字段的结果分别是什么?
- <李>
对于SQL标准以及其他数据库的实现,结果分别为<强> 2 强>和<强> 1 强> .
李> <李>但是对于MySQL,结果分别为<强> 2 强>和<强> 2 >强壮!
李>对于MySQL而言,如果更新语句在表达式中(col2=col1)使用了前面被更新的字段(col1),将会使用该字段被更新后的值(2)而不是原来的值(1).
注意,MySQL这种实现方式和SQL标准不同。另外我们还测试了其他数据库,包括甲骨文、微软SQL Server, PostgreSQL以及SQLite,它们的实现都遵循了SQL标准。
如果我们想要在MySQL中实现和标准SQL相同的效果,可以在更新语句中调整一下被更新字段的顺序例。如:
UPDATE t1 col1 SET col2 =,, 时间=col1 才能;col1 + 1 WHERE id =, 1,
这样一来,字段col2在col1之前更新,使用的是col1旧值(1),得到的结果和SQL标准一致。
以上就是怎么在MySQL中是一个非标准更新语句,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。