1. SQL / Говнокод #697

    −854.7

    1. 1
    2. 2
    UPDATE CARD SET STATE = (STATE - 1) * (-1);
    //таким экзотическим способом инвертируем значения 0/1, чтобы не подцеплять лишних UDF

    SQL-инвертор

    Запостил: guest, 12 Марта 2009

    Комментарии (12) RSS

    • Иван:
      UDF это пользовательские функции? Если да, то это тоже говнокод. Тут нужно было просто раскрыть скобки и получилось бы красивое выражение
      UPDATE CARD SET STATE = 1-STATE
      Ответить
    • говноаффтор:
      комент про UDF тоже взят из кода :)

      ЗЫ: Неплохо бы открыть ветку "Говнокоменты" (это к админам)
      Ответить
    • Sano:
      Умнеги!!! Учитесь!
      UPDATE CARD SET STATE = NOT STATE;
      Ответить
    • ujdyjfaanjh:
      [quote]Умнеги!!! Учитесь!
      UPDATE CARD SET STATE = NOT STATE[/quote]

      Умнег блин, надо тебя первым в говнокаменты.
      Boolean там отродясь не бывало, это firebird.
      Ответить
    • Sano:
      ujdyjfaanjh: оператора отрицания там тоже нет?
      Ты проверь :)
      Ответить
    • ujdyjfaanjh:
      [quote]оператора отрицания там тоже нет?
      Ты проверь :)[/quote]
      Отрицание есть конечно, но в UPDATE так не канает. пробовал.
      Ответить
    • Sano:
      ujdyjfaanjh: Ну упоминания о том, что это firebird в самом коде нет. В типе указано - SQL.
      А в SQL NOT 1 возвращает 0 и наоборот.
      Проверял на мускуле.
      Ответить
    • ujdyjfaanjh:
      >> Sano

      А NOT 2 что вернет? :)
      Ответить
    • Sano:
      ujdyjfaanjh: тож 0
      NOT %something% вернет 0 в любом случае, кроме 0 и NULL
      Ответить
    • Sano:
      поправка.. В случае стринга по идее вернет 1
      Ответить
    • codemonkey:
      >> Sano: Проверял на мускуле.
      проверь еще где-то ;)
      Ответить
    • Элегантное решение.
      Ответить

    Добавить комментарий