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

    −851

    1. 1
    2. 2
    3. 3
    4. 4
    ...
    WHERE
                1=1
    ...

    Запостил: black_dez, 10 Августа 2011

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

    • Это называется "заглушка".
      Ответить
    • может быть, запрос генерированный?
      Ответить
      • Именно. ORM'ы часто такое делают, если видят, что некоторое условие всегда истинно, ещё на стадии генерации запроса.
        Ответить
      • Не обязательно. Как ниже справедливо отмечают, вполне возможно, что оставлено место под дополнительные условия с and.

        В нашей системе также имеет популярность другая заглушка: "where 1=2", либо для хитрой логики, либо добавляется на этапе препроцессинга, если нужно, чтобы запрос не выдал ничего.
        Ответить
    • SELECT govno AS 1 ... WHERE 1=1

      А где-то так делать можно?
      Ответить
    • Обычно так говнокодят, когда генерируют фильтры и после WHERE могут идти разные параметры и чтоб не надо было вычислять что перед первым параметром не надо ставить AND, как-то так.
      Ответить
    • я в детстве писал "repeat ... until 7=13" (pas), чем рвал мозги сотоварищам
      Ответить
    • истинно свидетельствую, что видел на продакшене такой код... причем он вшит в C# :)
      Ответить
    • До боли знакомо, я это не раз встерчал в доставшейся по наследству самописной конфе 1С-ки:

      Пока (1 = 1) Цикл
      ...
      Если (Условие = ...) Тогда
      Прервать;
      КонецЕсли;
      ...
      КонецЦикла;
      Ответить
    • Сам так часто делаю. В процессе редактированияя очень удобно для комментирования условий с and
      where 1=1
      --and условие1
      and условие1
      --and условие1
      и т.д.
      Говнокодом не считаю, на скорость выполнения запроса такая удобняшка не влияет.
      Ответить
    • показать все, что скрытоvanished
      Ответить

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