美文网首页
MySQL的update多个字段时逗号写成and的错误例子

MySQL的update多个字段时逗号写成and的错误例子

作者: 刀尖红叶 | 来源:发表于2017-03-11 20:58 被阅读933次

    今天一个开发反馈update某行但不生效,场景如下:

    mysql> select * from test;  
     +------+------+
     | c1   | c2   |
     +------+------+
     |    0 | a    |
     +------+------+
    

    他想将c1列的值改成1、c2的值改成'b',然后用了如下sql:
    update test set c1=1 and c2='b' where c1=0;
    可以发现这个sql写法是错误的,正确写法应该是:
    update test set c1=1,c2='b' where c1=0;
    但第一个错误的sql运行没报错,因为被MySQL理解成:

    update test set c1=(1 and c2='b') where c1=0;  
     =>
     update test set c1=(1 and 0) where c1=0;  
     ==>
     update test set c1=0 where c1=0;  
    

    所以错误的sql相当啥都不做,但不仔细观察and应该改成逗号,还会觉得蛮诡异呢~

    相关文章

      网友评论

          本文标题:MySQL的update多个字段时逗号写成and的错误例子

          本文链接:https://www.haomeiwen.com/subject/hlezgttx.html