|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
Всем привет! Есть ли в АСЕ что-то более правильное чем Код: plaintext
т.е. срабатывания условия истина ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 10:16 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
и еще дополнительный вопрос примерно в этом же ракурсе: как сделать подстановку в where? например Код: plaintext 1. 2. 3.
т.е. оговорить переменные до селекта вроде как и нельзя, потому как: - в одном случае использует условие удовлетворяющее значению - в другом случае в условии поле должно быть чему-то равно думаю правильно передал мысль ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 10:44 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
сразу оговорюсь - склеивать строку типа: Код: plaintext 1. 2. 3. 4. 5. 6.
я не хочу, слишком уж большой запрос на самом деле ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 10:48 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 11:43 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
еще интересно, как деревянный асешный оптимизатор будет строить план такого полудинамического запроса, особенно если он внутрях хранимки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 12:42 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
Alexandr Nikolaev - пасиб, сработало и достаточно быстро :) Ggg_old - та вроде справляется :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 13:03 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
On 13.04.2011 11:16, Imperous wrote: > Есть ли в АСЕ что-то более правильное чем > > select *from table1where *1*=*1* > > ? > т.е. срабатывания условия истина Есть. select * from table1 Но в общем и where 1 = 1 ничем не плохо. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 13:54 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
On 13.04.2011 11:48, Imperous wrote: > declare @m_perchar(*250*) > > select @m_per ="select * from table1" > select @m_per = @m_per +" where field1 = 5 and" > select @m_per = @m_per + тут описывать все необходимые подстановки > > exec(@m_per) > > > > я не хочу, слишком уж большой запрос на самом деле Так и надо склеивать. Но только на клиенте. А формировать общий запрос с никогда не работающими условиями -- плохо, получите плохо оптимизируемый запрос. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 13:55 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
On 13.04.2011 12:43, Alexandr Nikolaev wrote: > select *from table1 > where > (@variable1 ="ок" and field2 = field2or @variable1<> "ок" and field2 ="не все ок")and > (@variable2 ="пуск" and field3 = field3or @variable2<> "пуск" and field3 ="не полетели")and Писать такие запросы -- очень плохой стиль. Они будут плохо оптимизироваться. Тем более, что тут "отмирает" условие JOIN-а, это вообще такие тормоза можно огрести, что ни дай боже. Потрудитесь лучше, на клиенте повыкидывайте лишние условия, сбейте конечный запрос и отдайте серверу. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 13:58 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
On 13.04.2011 14:03, Imperous wrote: > *Alexandr Nikolaev *- пасиб, сработало и достаточно быстро :) > *Ggg_old *- та вроде справляется :) Это может СЕЙЧАС быстро. А потом будет медленно. Сиюминутная быстрота и даже хороший план запроса тут -- не показатели, к сожалению. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 13:59 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
MasterZivТем более, что тут "отмирает" условие JOIN-агде в Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 14:23 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
в этом примере джойнов не видно, но они там на самом деле есть MasterZivOn 13.04.2011 11:16, Imperous wrote: > Есть ли в АСЕ что-то более правильное чем > > select *from table1where *1*=*1* > > ? > т.е. срабатывания условия истина Есть. select * from table1 Но в общем и where 1 = 1 ничем не плохо. а что есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2011, 15:52 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
On 13.04.2011 15:23, Alexandr Nikolaev wrote: > Тем более, что тут "отмирает" условие JOIN-а > > где в > > select *from table1where... > > условие JOIN-а ??? select * from table1 where (@variable1 = "ок" and field2 = field2 or @variable1 <> "ок" and field2 = "не все ок") and (@variable2 = "пуск" and field3 = field3 or @variable2 <> "пуск" and field3 = "не полетели") and Нет ? Если нет, то тогда поясни глубокий смысл такого запроса. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2011, 11:23 |
|
В Where аналог 1=1 (ase 12.5)
|
|||
---|---|---|---|
#18+
MasterZivНет ? Если нет, то тогда поясни глубокий смысл такого запроса. Топиккастер привёл запрос по одной таблице, какой смысл он в него вкладывал его дело. В дальнейшем оказалось что Imperousв этом примере джойнов не видно, но они там на самом деле есть и вы MasterZiv правы что мной вариант будет "съедать" MasterZivусловие JOIN-а. Думаю что топиккастеру полезнее было бы оформить как: Есть таблицы (скрипты на создание с "ключами" + "индексами") Необходимо то-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2011, 13:32 |
|
|
start [/forum/topic.php?fid=55&msg=37216303&tid=2010358]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
84ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 315ms |
total: | 504ms |
0 / 0 |