怎么在MySQL中是一个非标准更新语句

  介绍

本篇文章给大家分享的是有关怎么在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中是一个非标准更新语句,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

怎么在MySQL中是一个非标准更新语句