把我坑惨的一个update语句!
点击上方“方志朋”,选择“设为星标”
回复”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语句!相关推荐
- 警示:一个update语句引起大量gc等待和业务卡顿
墨墨导读:业务卡顿异常,有几个 insert into 语句的gc等待比较严重,发生业务超时,本文分析了超时原因并详述整个处理过程,希望对大家有帮助. 1. 故障现象 客户报2020年7月9号,8点3 ...
- 巨坑,常见的 update 语句很容易造成Bug
来源:cnblogs.com/yjmyzz/p/13562182.html 业务系统中,使用update语句更新数据是再正常不过的场景,我们也经常通过update更新的行数,来做一些业务判断,类似下面 ...
- mysql 一个update语句 对主表内容和子表批量修改
1. (附加内容:什么时候复写equals和hashCode,为什么有的人不喜欢用lombock) 在开发中,经常会遇到 修改一张主表的数据后,然后再去修改字表的内容,一般是调用两个sql 下面的例子 ...
- 把我坑惨的一个MySQL双引号!
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 来源:w ...
- 相同update语句在MySQL,Oracle的不同表现(r12笔记第30天)
今天有个朋友问我一个SQL问题,大体是一个update语句,看起来逻辑没有问题,但是执行的时候却总是报错. 语句和报错信息为: UPDATE payment_data rr SET rr.pen ...
- mysql更新代码_mysql update语句的用法
1. 单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 .. ...
- java sql update用法_使用if else条件将SQL UPDATE语句转换为php(codeigniter)
condition 3: a. LAMA 和 ESTIMASI 均为空 . b. LAMA 为空 c. ESTIMASI 为空 如果要根据 LAMA 和 ESTIMASI 的值更新表中的所有行,可以使 ...
- mysql update set_mysql update语句的用法详解
本文详细介绍了,mysql中update语句的用法,系统全面的学习下update更新语句的用法,有需要的朋友可以参考下 首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [I ...
- mysql update用法_mysql update语句的用法详解
首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] ...
最新文章
- Kali Linux 2017.1脚本gerix.py修复
- 线性方程 最小二乘解 SVD分解
- Windows Server2012 搭建域错误“本地Administraor账户不需要密码”
- 跑赢A股95%的公司,半年大涨115%!明年的海尔智家更令人期待!
- hibernate hql语句 投影查询的三种方式
- boost::mpl模块实现list_c相关的测试程序
- offsetTop和scrollTop的差别
- HashMap底层结构
- oracle定时任务在哪,oracle定时任务
- 判断是否为 retina屏幕
- RK3399平台开发系列讲解(高速设备驱动篇)6.46、蓝牙驱动
- Pigeon的一次调用客户端发生了什么
- ACSII,GB2312,GBK,GB18030,Unicode,UTF8,UTF16,UTF32,BOM区别与转换——字符编码最全总结
- java项目获取系统信息
- rsync - 客户端常用参数
- Dedecms 火车采集器免登陆发布接口,自动生成上下篇、栏目页、首页
- Linux系统编程-信号入门2
- 电动汽车模型的各模块的Simulink模型,包括驾驶员模块
- 静态路由配置(思科PNET)
- 求刷Kindle Fire HD的方法