我需要根据在同一查询中更新的另一个字段的值来更新一个字段。
例如,这可能是我的代码:
UPDATE my_table SET qty = qty+1, complete = IF(qty = '10', '1', '0') WHERE id = '1'
IF条件中qty
的值是更新之前还是之后的值?
答案 0 :(得分:0)
UPDATE my_table SET qty = qty+1, complete = IF(qty = 9, '1', '0') WHERE id = '1'
应该将条件中的值与更新之前的值进行比较,因此,如果您的条件应与更新后的值进行比较,那么您应该与语句中的9进行比较(如果您将比较中的值加1 :))。 / p>
另外,您将数字数据与字符串值(用撇号表示)进行比较(我猜是这样),这会导致隐式强制转换。您应该意识到这一点:)
答案 1 :(得分:0)
该值是在更新qty后以“ qty = qty + 1”表示的 因此,如果表中的数量= 5。
语句“ IF(qty ='10','1','0')”中的数量为6。