Синтаксис 1=1 в WHERE SQL

У какого 'значения' есть это решение SQL в статье WHERE?

SELECT * FROM cat_precios WHERE 1=1 ORDER BY PRE_ID

Специально: WHERE 1=1

Правда никогда не видела нечто похожее и у меня нет идеи о, как оно функционирует. Они могли бы объяснять мне, что он оценивает там?

Поскольку он замечает, нет никакого так называемого поля 1

10
задан 24.07.2019, 22:43
2 ответа

В query значь, если Истинный, костлявая, что он больше, потому что он всегда будет true, и - видимо бесполезное условие в этом случае...

Но обычно он используется, когда ты будешь создавать один WHERE где ты не знаешь точные условия, если бы не, что вооружаются в полет, такой все остальные условия, которые присоединялись бы всегда, шли AND.

Пример:

У тебя есть экран с несколькими выборами ВЫДАННЫЙ:

  • По имени
  • В дату
  • Из-за id

и все опциональные, так что твой query может оставаться:

select * from tabla where 

Но ты не знаешь, что выборы выданный у него будет, они могут быть всеми или ни одной или какой-то, тогда вооружается характерный query:

select * from tabla where 1 = 1

что функционировал для всех случаев, и согласно выборам он добавляются условия:

 - and nombre = 'nombre'
 - and fecha = '2016-01-01'
 - and id = 10

тогда query было бы возможно вооружать:

select * from tabla where 1 = 1 and id = 10

оставляя выборы выданный динамика, другой формы мы не могли бы знать, должно идти ли условие and или, не или если where он был бы должен идти в консультации.

16
ответ дан 03.12.2019, 18:31
  • 1
    Превосходный explicació n просто гениальный....!! –  24.07.2019, 21:01
  • 2
    Имеет смысл твой explicació n, мне продолжает оставлять смущено razó n реальный из-за qué está así. А именно, у него есть решение order despué s where. :S –  24.07.2019, 22:50
  • 3
    @KodiakMx он имеет order, потому что я вероятно не включаюсь никакой фильтр. А именно добавлять истинное условие, чтобы добавлять или нет добавочные фильтры и для этого случая не присоединилось. –  25.07.2019, 00:40
    Сходные
  1. в this
  2. 1=1? Просвет просто - один condiciГіn как программист, результат которого - booleano "True"
1
ответ дан 03.12.2019, 18:31

решение where служит для того, чтобы выдать линии, которые выбираются (что они будут появляться) набора данных, когда ты помещаешь where true как в этом случае (так как 1 = 1 технически дал бы true) он означает, что нет ограничений, и все реестры появятся то же самое что, если консультация была:

SELECT * FROM cat_precios ORDER BY PRE_ID

без where.

Также используется, чтобы вооружать консультации, где уходит добавлять 0 или более ограничений в where, так как where у него, должно быть, есть по крайней мере одна condiciГіn.

1
ответ дан 03.12.2019, 18:31

У меня есть идея, которая состоит больше в том, что совсем они это используют, когда не известно во времени компиляции количество условий, которые у консультации будут; но эти произведены даже во время выполнения. Когда уже он имеется WHERE 1=1 только прилагаются остальные условия в эту.

Он равно как WHERE = 1 или WHERE = true.

3
ответ дан 03.12.2019, 18:31
  • 1
    Ясно. Это используется обычно, чтобы выполнять цепи sql с aplicació n. Как where уже está включенный, только нужно добавлять and или or к condició n новость, не будучи должен состоять, если он существует Where или нет. –  16.12.2016, 20:14