<rmcreative>

RSS

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

  1. №1290
    Денис
    Денис 18.02.2009, 20:57:17

    Использую то же самое, только для числовых значений, да и в принципе возможно выполнять любые операции с полями...

    UPDATE `groups` SET `UsersCount` = `UsersCount` + 1 WHERE `ID` = %d

    Очень полезная возможность. Позволяет уменьшить количество действий ;-)

  2. №1294
    Dr.Death
    Dr.Death 19.02.2009, 14:00:28

    а можно извратица и так cron = (cron - 1) * (-1) :)

    cron = -cron :)

  3. №1295
    Sam
    Sam 19.02.2009, 14:50:31

    Меняется с 1 на 0 и обратно, а не на -1 ;)

  4. №1297
    AmdY
    AmdY 21.02.2009, 1:12:17

    как-то я не подумал о таком простом способе, раньше юзал set visible=if(0,1,0), но обновив однажды docrine оказалось что запрос не проходит парсинга.

  5. №1337
    Dr.Death
    Dr.Death 05.03.2009, 18:41:12

    а первый изврат поидеи и меняет 0 и 1 :)

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.