UPDATE语句写错了

2018-09-06 10:54:32       xhs
想更新物品数量,本来是9,需要减5,并且更新时间
SQL写成这样
UPDATE user_borrow_goods SET num=num-5 AND update_time=1535363307 WHERE id=133;
结果 num成了0,update_time没变
原因在于更新多个字段应该有逗号分隔
正确的写法是
UPDATE user_borrow_goods SET num=num-5 AND update_time=1535363307 WHERE id=133;
num为什么变成0了呢?
SQL执行的时候把等号右边部分当作整体了,即
UPDATE user_borrow_goods SET num=(num-5 AND update_time=1535363307) WHERE id=133;
(num-5 AND update_time=1535363307)的值是多少呢?
num原值是9,update_time原值是0,表达式就变为
(9-5 AND 0=1535363307)
(4 AND 0)
0
结果是0
补充:AND是逻辑与,结果只有0或1;=号在这里是判断是否相等,不是赋值符号

发表评论