toggle для mysql
18 февраля 2009
Что только не придумают иногда программисты… Задача — изменить значение cron в таблице ml на противоположное. Код немного не SQL т.к., скорее всего, писался под Drupal:
UPDATE {ml} SET cron = (SELECT if(cron = 0,"1","0")) WHERE yid = %d
Хотя на самом деле можно проще, быстрее и понятней:
UPDATE {ml} SET cron = !cron WHERE yid = %d
Комментарии RSS по email OK
Использую то же самое, только для числовых значений, да и в принципе возможно выполнять любые операции с полями...
Очень полезная возможность. Позволяет уменьшить количество действий ;-)
а можно извратица и так cron = (cron - 1) * (-1) :)
cron = -cron :)
Меняется с 1 на 0 и обратно, а не на -1 ;)
как-то я не подумал о таком простом способе, раньше юзал set visible=if(0,1,0), но обновив однажды docrine оказалось что запрос не проходит парсинга.
а первый изврат поидеи и меняет 0 и 1 :)