У какого 'значения' есть это решение SQL в статье WHERE?
SELECT * FROM cat_precios WHERE 1=1 ORDER BY PRE_ID
Специально: WHERE 1=1
Правда никогда не видела нечто похожее и у меня нет идеи о, как оно функционирует. Они могли бы объяснять мне, что он оценивает там?
Поскольку он замечает, нет никакого так называемого поля 1
В query значь, если Истинный, костлявая, что он больше, потому что он всегда будет true, и - видимо бесполезное условие в этом случае...
Но обычно он используется, когда ты будешь создавать один WHERE
где ты не знаешь точные условия, если бы не, что вооружаются в полет, такой все остальные условия, которые присоединялись бы всегда, шли AND
.
Пример:
У тебя есть экран с несколькими выборами ВЫДАННЫЙ:
и все опциональные, так что твой 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
он был бы должен идти в консультации.
решение where служит для того, чтобы выдать линии, которые выбираются (что они будут появляться) набора данных, когда ты помещаешь where true как в этом случае (так как 1 = 1 технически дал бы true) он означает, что нет ограничений, и все реестры появятся то же самое что, если консультация была:
SELECT * FROM cat_precios ORDER BY PRE_ID
без where.
Также используется, чтобы вооружать консультации, где уходит добавлять 0 или более ограничений в where, так как where у него, должно быть, есть по крайней мере одна condiciГіn.
У меня есть идея, которая состоит больше в том, что совсем они это используют, когда не известно во времени компиляции количество условий, которые у консультации будут; но эти произведены даже во время выполнения. Когда уже он имеется WHERE 1=1
только прилагаются остальные условия в эту.
Он равно как WHERE = 1
или WHERE = true
.
where
уже está включенный, только нужно добавлять and
или or
к condició n новость, не будучи должен состоять, если он существует Where
или нет.
–
16.12.2016, 20:14