MySQL: Simple way to toggle a value of an int field

Viewed 25996

I know how to do this, but i think I'll overcomplicate it with double selects and so on.

How can you do this (example in pseudo-sql)

UPDATE some_table SET an_int_value = (an_int_value==1 ? 0 : 1);

It must be an int value due to some other functionality, but how do you do it in a simple way?

9 Answers
UPDATE some_table SET an_int_value = IF(an_int_value=1, 0, 1)

In this case, you could use an XOR type operation:

UPDATE some_table SET an_int_value = an_int_value XOR 1

This is assuming that an_int_value will always be 1 or 0 though.

Another option:

UPDATE some_table SET an_int_value = ABS(an_int_value - 1);
Related