|
|
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
сижу ковыряю отчеты одной системы, и в каждом запросе фижу такую конструкцию select .... from .... whre 1=1 and ...... никак не пойму зачем нужно условие 1=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 14:10 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Чтобы в коде, запускающем отчет делать qry = Replace(qry, "1=1", myCondition) ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 14:15 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
иногда так делают, когда текст секции WHERE генерится циклом с с конкатенацией строки вида " AND условие_номер_i " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 14:16 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
QЧтобы в коде, запускающем отчет делать qry = Replace(qry, "1=1", myCondition) ? :) miksoftиногда так делают, когда текст секции WHERE генерится циклом с с конкатенацией строки вида " AND условие_номер_i " в том то и дело что запросы заданы жестко и автоматически не генерится. з.ы. да и посмотреть первое условие это или нет тоже проблем не составит если автоматом генерить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 14:29 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Разработчики вполне могли пользоваться каким-то генератором для текста запросов, да и для самих форм отчетов тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 14:33 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Q, вариант! а еще варианты есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 15:08 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Dmitry6237 whre 1=1 Как и было сказано в основном это делается для облегчения конструкции динамически добавляемых переменных. Например отчет в конечном результате будет иметь следующий запрос. [SRC = sql] select ... from .... where 1=1 -- след условие добовляется генератором and поле = значение and поле = значение and поле = значение [/src]для удобство добавления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 16:08 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Dmitry6237никак не пойму зачем нужно условие 1=1 Одной из исторических причин использования таких конструкций ещё со времём SYBASE T-SQL является передача клиенту данных о структуре объекта (таблицы или вьюхи) вместе со значениями. Тогда не было ещё простого визуального обращения за колонками. Писали просто Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 17:26 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Dmitry6237 пишет: > select .... > from .... > whre 1=1 1=1 - это контанта "TRUE". В SQL нет булевского типа данных. Поэтому приходится вот так. А для чего оно надо в данном конкретном случае - не понятно, надо просить автора рассказать. В генерённом коде это надо было бы для того, чтобы если ни одного условия не было бы добавлено, (ни одного and ...), запрос был бы синтаксически валиден и семантически возвращал бы всё, без фильтров. У нас код не генерённый, но некторорые ставят такие штуки просто чтобы было удобно в редакторе править код: одна строчка - одно условие, всегда начинающееся с AND. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 01:18 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
MasterZiv В генерённом коде это надо было бы для того, чтобы если ни одного условия не было бы добавлено, (ни одного and ...), запрос был бы синтаксически валиден и семантически возвращал бы всё, без фильтров. + 1. наиболее вероятно, автоматическая генерация запросов. Если генератор слабенький и не обладает нормальным синаксическим анализатором, то это простейший путь для добавления дополнительных WHERE- условий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 01:50 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Dmitry6237з.ы. да и посмотреть первое условие это или нет тоже проблем не составит если автоматом генерить а по некоторому готовому тексту узнать это первое условие или нет тоже банально? :) ---- если есть неструктурированный запрос, то подобная конструкция дает самый тривиальный способ добавления к существующему тексту дополнительных условий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 01:58 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Mr Marmeladа если надо было просто вывести колоночки писали Код: plaintext так и сейчас пишут, если требуется пустой набор данных . Дешево (для СУБД) и сердито (constant scan). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 02:04 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
iscrafmесли есть неструктурированный запрос, то подобная конструкция дает самый тривиальный способ добавления к существующему тексту дополнительных условий. если конечно в тексте нет ORDER BY, GROUP BY, HAVING... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 02:14 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Mr MarmeladDmitry6237никак не пойму зачем нужно условие 1=1 Одной из исторических причин использования таких конструкций ещё со времём SYBASE T-SQL является передача клиенту данных о структуре объекта (таблицы или вьюхи) вместе со значениями. Тогда не было ещё простого визуального обращения за колонками. Писали просто Код: plaintext Код: plaintext ога, именно sybase! а подскажете где можно по подробнее почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 08:42 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Я с такой записью как-то встретился на сервере у знакомого, и мне объяснили, что таким образом гораздо легче комментить условия...т.к. у каждого своя строка, начинающаяся с and ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 10:44 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Ягодная карусельЯ с такой записью как-то встретился на сервере у знакомого, и мне объяснили, что таким образом гораздо легче комментить условия...т.к. у каждого своя строка, начинающаяся с andИ это так! пока пишешь запрос иногда приходится перебирать разные варианты его компановки. Коментировать условия не удаляя - проще так. Код: plaintext 1. 2. Ну и автогенератор условий - это вторая часть когда это используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 12:46 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Мне попался запрос вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Зачем в нем три раза условие 1=1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 10:56 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
автогенератор с ошибками? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 11:13 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
а в таблице tab1, небось 8 полей? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 11:22 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
Guest07Мне попался запрос вида Код: plaintext 1. 2. Зачем в нем три раза условие 1=1? Ну как же, для надёжности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 11:26 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
egorychа в таблице tab1, небось 8 полей? ;-) нет, в ней 15 полей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 11:30 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
место для дополнительной фильтрации присоединяемых таблиц ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 13:06 |
|
||
|
where 1=1
|
|||
|---|---|---|---|
|
#18+
я работал с приложением, через которое можно было писать запросы к базе данных, и если запрос выглядел как delete from table без условий или update без условий, то он выдавал запрос подтверждения, типа "вы уверены?", а если было дописать where 1 = 1 , то выполнялось все без дополнительных вопросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 15:18 |
|
||
|
|

start [/forum/topic.php?fid=32&tid=1542971]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 492ms |

| 0 / 0 |
