MySQL接受带有ANDs in SET子句的更新

MySQL接受带有ANDs in SET子句的更新,mysql,Mysql,我无法向我的学生解释为什么MySQL不为此返回错误 UPDATE table1 SET col1 = 2 AND col2 = 'Fred' AND col3 = 5 WHERE id = 6; 我知道正确的查询是什么,我知道这个查询出了什么问题,但是为什么MySQL允许这个查询呢 col1的值是多少?我猜是1还是0,因为整个过程被误解为逻辑运算,并将其结果作为布尔值返回到列出的第一列。查询是正确的,允许使用逻辑运算符。。(在这种情况下没有意义)…但允许示例:这必须相当于更新表1集合col1=

我无法向我的学生解释为什么MySQL不为此返回错误

UPDATE table1 SET col1 = 2 AND col2 = 'Fred' AND col3 = 5 WHERE id = 6;

我知道正确的查询是什么,我知道这个查询出了什么问题,但是为什么MySQL允许这个查询呢

col1
的值是多少?我猜是1还是0,因为整个过程被误解为逻辑运算,并将其结果作为布尔值返回到列出的第一列。查询是正确的,允许使用逻辑运算符。。(在这种情况下没有意义)…但允许示例:这必须相当于更新表1集合col1=(2和col2='Fred'和col3=5),其中id=6,这是有效的SQL语法。你能听到硬币掉落的声音吗?谢谢大家。迈克尔做得很好,他迅速加入了sqlfiddle。