点击上方“方志朋”,选择“设为星标”

回复”666“获取新整理的面试资料

来源:ju.outofmemory.cn/entry/336774

最近好几次有开发同学在钉钉上问我,比如下图:

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

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

有问题的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!

热门内容:   

  

  • 一个员工的离职成本到底有多恐怖!

  • 终于有人把 Docker 讲清楚了,万字详解!

  • Tomcat 和 JVM 的性能调优总结

  • Java 性能优化:教你提高代码运行的效率

  • 感受lambda之美,推荐收藏,需要时查阅

  • 某团面试题:JVM 堆内存溢出后,其他线程是否可继续工作?

  • 我的面试标准:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架!

  • 聊聊前后端分离接口规范

  • RESTful 架构基础

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

把我坑惨的一个update语句!相关推荐

  1. 警示:一个update语句引起大量gc等待和业务卡顿

    墨墨导读:业务卡顿异常,有几个 insert into 语句的gc等待比较严重,发生业务超时,本文分析了超时原因并详述整个处理过程,希望对大家有帮助. 1. 故障现象 客户报2020年7月9号,8点3 ...

  2. 巨坑,常见的 update 语句很容易造成Bug

    来源:cnblogs.com/yjmyzz/p/13562182.html 业务系统中,使用update语句更新数据是再正常不过的场景,我们也经常通过update更新的行数,来做一些业务判断,类似下面 ...

  3. mysql 一个update语句 对主表内容和子表批量修改

    1. (附加内容:什么时候复写equals和hashCode,为什么有的人不喜欢用lombock) 在开发中,经常会遇到 修改一张主表的数据后,然后再去修改字表的内容,一般是调用两个sql 下面的例子 ...

  4. 把我坑惨的一个MySQL双引号!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 来源:w ...

  5. 相同update语句在MySQL,Oracle的不同表现(r12笔记第30天)

    今天有个朋友问我一个SQL问题,大体是一个update语句,看起来逻辑没有问题,但是执行的时候却总是报错. 语句和报错信息为: UPDATE payment_data rr    SET rr.pen ...

  6. mysql更新代码_mysql update语句的用法

    1.    单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 .. ...

  7. java sql update用法_使用if else条件将SQL UPDATE语句转换为php(codeigniter)

    condition 3: a. LAMA 和 ESTIMASI 均为空 . b. LAMA 为空 c. ESTIMASI 为空 如果要根据 LAMA 和 ESTIMASI 的值更新表中的所有行,可以使 ...

  8. mysql update set_mysql update语句的用法详解

    本文详细介绍了,mysql中update语句的用法,系统全面的学习下update更新语句的用法,有需要的朋友可以参考下 首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [I ...

  9. mysql update用法_mysql update语句的用法详解

    首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] ...

最新文章

  1. Kali Linux 2017.1脚本gerix.py修复
  2. 线性方程 最小二乘解 SVD分解
  3. Windows Server2012 搭建域错误“本地Administraor账户不需要密码”
  4. 跑赢A股95%的公司,半年大涨115%!明年的海尔智家更令人期待!
  5. hibernate hql语句 投影查询的三种方式
  6. boost::mpl模块实现list_c相关的测试程序
  7. offsetTop和scrollTop的差别
  8. HashMap底层结构
  9. oracle定时任务在哪,oracle定时任务
  10. 判断是否为 retina屏幕
  11. RK3399平台开发系列讲解(高速设备驱动篇)6.46、蓝牙驱动
  12. Pigeon的一次调用客户端发生了什么
  13. ACSII,GB2312,GBK,GB18030,Unicode,UTF8,UTF16,UTF32,BOM区别与转换——字符编码最全总结
  14. java项目获取系统信息
  15. rsync - 客户端常用参数
  16. Dedecms 火车采集器免登陆发布接口,自动生成上下篇、栏目页、首页
  17. Linux系统编程-信号入门2
  18. 电动汽车模型的各模块的Simulink模型,包括驾驶员模块
  19. 静态路由配置(思科PNET)
  20. 求刷Kindle Fire HD的方法

热门文章

  1. 20180829-Java多线程编程
  2. Largest Rectangle in a Histogram
  3. Direct2D开发:Direct2D 和 GDI 互操作性概述
  4. IEC61850笔记--IEC61850应用入门(二)
  5. 超简单的网页选项卡---jQuery
  6. NPOI读取Excel数据应用
  7. Vcastr 2.2 flv 网络播放器 参数设置
  8. 【青少年编程竞赛交流】11月份微信图文索引
  9. 有符号整型的数据范围为什么负数比正数多一个?
  10. 刻意练习:LeetCode实战 -- Task28.跳跃游戏