MySQL:简单的方法来切换一个int字段的值
我知道如何做到这一点,但我想我会用双重select等等过度复杂。
你怎么能做到这一点(例如伪sql)
UPDATE some_table SET an_int_value = (an_int_value==1 ? 0 : 1);
由于其他一些function,它必须是一个int值,但是如何以一种简单的方式来实现呢?
UPDATE some_table SET an_int_value = IF(an_int_value=1, 0, 1);
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if
UPDATE table SET field = 1 - field
UPDATE some_table SET an_int_value = IF(an_int_value=1, 0, 1)
在这种情况下,您可以使用XORtypes操作:
UPDATE some_table SET an_int_value = an_int_value XOR 1
这是假设an_int_value将始终是1或0。
我可以看到所有有经验的人的答案,我也得到了他们的答案更新。
这个怎么样…我这样做…
UPDATE tablename SET fieldname = not fieldname
如果这不是一个可行的解决scheme,任何机构可以提出build议。 关于执行速度或其他任何…说什么…事实…概念…。
另外一个select:
UPDATE some_table SET an_int_value = ABS(an_int_value - 1);
对于ENUM(0,1)字段,您可以使用…
UPDATE table SET int_value = BINARY(int_value = 1)
对于ENUM(0,1)UPDATE some_table SET an_int_value = IF(an_int_value ='1','0','1');