MySQL UPDATE 语句一个“经典”的坑

 更新时间:2021年10月07日 10:26:35   作者:芋道源码  
这篇文章主要介绍了MySQL UPDATE 语句一个“经典”的坑,一个非常有意思的话题,感兴趣的小伙伴可以参考下面文章的具体内容哦

有人问,比如下图:

问题归纳起来就是:MySQL里面update一条记录,语法都正确的,但记录并没有被更新...

刚遇到这个问题的时候,我拿到这条语句直接在测试库里面执行了一把,发现确实有问题,但和开发描述的还是 有区别 ,这里我用测试数据来模拟下:

1、有问题的SQL语句

执行之后的记录是:

可以看到,结果并不像这位开发同学说的“好像没有效果”,实际上是有效果的:

why?

看起来,语法是完全没有问题,翻了翻MySQL官方文档的update语法:

看到assignment_list的格式是以逗号分隔的col_name=value列表,一下子豁然开朗,开发同学想要的多字段更新语句应该这样写:

倒回去再重试验一把

果然,这下得到了想要的结果!

小结 : 在一条UPDATE语句中,如果要更新多个字段,字段间不能使用“AND”,而应该用逗号分隔。

后记 :后面等有空的时候,又回过头来看了一下,为什么使用“AND”分隔的时候,会出现owner_code=0的奇怪结果?多次尝试之后发现:

等价于:

而 ('43212' and owner_name='李四') 是一个逻辑表达式,而这里不难知道owner_name并不是‘李四'。因此,这个逻辑表达式的结果为 false , false在MySQL中等价于0!

到此这篇关于MySQL UPDATE 语句一个“经典”的坑的文章就介绍到这了,更多相关MySQL UPDATE内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL判断空值的三种方法

    MySQL判断空值的三种方法

    在创建表时,可以指定的列是否可以不包含值,如果在一个列不包含值,则其称其为空值NULL,NULL一个特殊值,代表缺失的值或者不适用的情况,表示未知数据,本文给大家介绍了MySQL判断空值的三种方法,需要的朋友可以参考下
    2024-03-03
  • 图文详解Ubuntu下安装配置Mysql教程

    图文详解Ubuntu下安装配置Mysql教程

    这篇文章主要以图文结合的方式详细为大家介绍了Ubuntu安装配置Mysql的实现步骤,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 通过SqlCmd执行超大SQL文件的方法

    通过SqlCmd执行超大SQL文件的方法

    这篇文章主要介绍了sql server 与 mysql 中常用的SQL语句区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Mysql基础教程之增删改查语句

    Mysql基础教程之增删改查语句

    这篇文章主要给大家介绍了关于Mysql基础教程之增删改查语句的相关资料,以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,需要的朋友可以参考下
    2023-10-10
  • MySQL服务器进程CPU占用100%的解决方法

    MySQL服务器进程CPU占用100%的解决方法

    早上帮朋友一台服务器解决了 Mysql cpu 占用 100% 的问题。稍整理了一下,将经验记录在这篇文章里。
    2010-12-12
  • MySQL使用GROUP BY分组查询

    MySQL使用GROUP BY分组查询

    GROUP BY关键字可以根据一个或多个字段对查询结果进行分组,本文主要介绍了MySQL使用GROUP BY分组查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • SpringBoot连接MySQL获取数据写后端接口的操作方法

    SpringBoot连接MySQL获取数据写后端接口的操作方法

    今天通过本文给大家介绍SpringBoot连接MySQL获取数据写后端接口的操作方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-11-11
  • MySQL在Linux系统中隐藏命令行中的密码的方法

    MySQL在Linux系统中隐藏命令行中的密码的方法

    这篇文章主要介绍了MySQL在Linux系统中隐藏命令行中的密码的方法,作者利用简单的C程序实现,需要的朋友可以参考下
    2015-06-06
  • MySQL中distinct语句去查询重复记录及相关的性能讨论

    MySQL中distinct语句去查询重复记录及相关的性能讨论

    这篇文章主要介绍了MySQL中distinct语句去查询重复记录及相关的性能讨论,文中的观点是在一定情况下避免在最高层查询中使用distinct,需要的朋友可以参考下
    2016-01-01
  • MySQL在Centos7环境安装的完整步骤记录

    MySQL在Centos7环境安装的完整步骤记录

    在CentOS7环境下安装MySQL是一项常见的任务,尤其对于那些没有网络连接或者需要在隔离环境中的开发者来说,离线安装MySQL显得尤为重要,这篇文章主要介绍了MySQL在Centos7环境安装的完整步骤,需要的朋友可以参考下
    2024-10-10

最新评论