想更新物品数量,本来是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;=号在这里是判断是否相等,不是赋值符号