Ответ 1
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
Я знаю, как это сделать, но я думаю, что я скомпрометирую его с помощью двойного выбора и т.д.
Как вы можете это сделать (пример в псевдо-sql)
UPDATE some_table SET an_int_value = (an_int_value==1 ? 0 : 1);
Это должно быть значение 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)
В этом случае вы можете использовать операцию типа XOR:
UPDATE some_table SET an_int_value = an_int_value XOR 1
Предполагается, что значение an_int_value всегда будет равно 1 или 0.
Я могу видеть ответы всех опытных людей, и я тоже обновил их ответы.
как насчет этого... я делаю этот путь...
UPDATE tablename SET fieldname = not fieldname
может ли любой орган дать предложения, пожалуйста, если это не будет приемлемым решением. в отношении скорости выполнения или любого другого... что сказать... факт... концепция....
Другая опция:
UPDATE some_table SET an_int_value = ABS(an_int_value - 1);
Для полей ENUM (0,1) вы можете использовать...
Таблица UPDATE SET int_value = BINARY (int_value = 1)
Для ENUM (0,1) UPDATE some_table SET an_int_value = IF (an_int_value = '1', '0', '1');