当update中的set语句更新多个值时
- update set 后参数为逗号隔开的列表
- 若set后参数用and连接,会有预期外的情况。
Example
update base_test set flag = 1 and name = 'ignore' where id = 1;
这个执行后结果,只更新了flag,而且flag值为0。
But,为什么会产生如此奇怪结果。是按以下执行,1 and name = 'ignore’为false,在sql中,false正是0,so
update base_test set flag = (1 and name = 'ignore') where id = 1;

本文探讨了在SQL中使用UPDATE语句时,SET子句后使用逗号与AND连接多个更新项的区别。通过一个具体例子说明,当使用AND连接时可能导致意外结果,原因是SQL将AND解释为逻辑运算而非字段更新,最终导致flag被错误地设置为0。
752

被折叠的 条评论
为什么被折叠?



