专栏名称: java那些事
分享java开发中常用的技术,分享软件开发中各种新技术的应用方法。每天推送java技术相关或者互联网相关文章。关注“java那些事”,让自己做一个潮流的java技术人!《java程序员由笨鸟到菜鸟》系列文章火热更新中。
目录
相关文章推荐
51好读  ›  专栏  ›  java那些事

MySQL由一个双引号引发的血案

java那些事  · 公众号  · Java  · 2019-03-01 16:00

正文

请到「今天看啥」查看全文


tbl_name set str_col= "xxx" = "yyy"


那么这个SQL在MySQL他是如何进行语义转化的呢?
可能是下面这样的么?


update tbl_name set (str_col= "xxx" )= "yyy"


这样就语法错误了,那么只会是下面这样的形式,


update tbl_name set str_col=( "xxx" = "yyy" )



select "xxx" = "yyy"


的值是0,所以


update tbl_name set str_col= "xxx" = "yyy"


等价于


update tbl_name set str_col= 0


所以就导致了source_name字段全部更新成了0.

我们再研究下select形式这种语句会怎么样。


mysql [localhost] {msandbox} (test) > select







请到「今天看啥」查看全文