|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
авторГанов Александр (перенесено отсюда ) как вариант использовать "+", который превратит отсутствующий параметр в "нулевую строку", в том случае если какой-то параметр запроса не был использован пользователем разобрался с "+". все ОК. можно хоть "стопицот" условий сделать. одного пока не пойму как сделать: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Не могу понять одно как справиться с AND. если их внести под скобку в начале каждой строки начиная со второй строки Where, то если нет строки условия, то и AND не будет, но тогда если нет первого условия Where ([Название]), то строка Where начнется сразу с AND, что вызовет ошибку. В таком моем варианте все работает, но при отсутствии каждого условия остается AND, я их убрал после формирования строки циклом, но понимаю, что это корявое решение. Код: vbnet 1. 2. 3. 4. 5. 6.
Может быть у кого-то есть пример "правильной" реализации таких запросов. Заранее благодарствую ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 08:15 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Ганов АлександрНе могу понять одно как справиться с AND. если их внести под скобку в начале каждой строки начиная со второй строки делаешь свой построитель условий. Это не сильно сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 08:30 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Ганов АлександрНе могу понять одно как справиться с AND. Стандартный подход - формируется строка запроса без условий в формате: Код: sql 1. 2. 3.
после чего динамически формируемые условия присоединяются к ней в формате Код: sql 1.
Т.е. итоговый запрос выглядит как Код: sql 1. 2. 3.
И никаких геморроев с обрезкой концевого AND. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 08:40 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Ганов Александр, я предпочитаю так Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 09:08 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Можно еще проще: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 09:09 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
MrShin, лишний символ... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 09:24 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 09:56 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
Здесь,благодаря символу "+" для конкатенации при пустом поле fldНазвание возвращается только "WHERE ", что и требовалось. Код: vbnet 1.
Здесь и в строках ниже при пустом поле возвращается ") AND ". Если вам нравится баловаться символом "+", то тогда его надо указать и вместо "&", т.е.: Код: vbnet 1.
Тогда при пустом поле вернется Null, т.е. строка выпадает. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 11:47 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Akina Код: sql 1.
MrShinМожно еще проще: Код: sql 1.
Akinaлишний символ... Без лишних символов. Код: sql 1.
или даже так Код: sql 1.
(хотя всегда использую True) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 12:04 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, спасибо за подсказку. единственное. при "+" в остальных строках в первой все равно останется 1шт AND , а так получается что модель работоспособна и по сути надо только в первой строчке резануть AND , либо добавлять его только в том случае если поле первого условия есть какое-либо продолжение. в общем и целом все понял. все предельно просто. Еще раз всем спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 12:09 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Ганов Александр, обычно я делаю так Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 12:30 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 12:34 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
Akinaлишний символ Зато нет лишней операции, уж не знаю какой там оптимизатор ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 13:42 |
|
SQL-запрос для формы поиска и обработка логических операторов
|
|||
---|---|---|---|
#18+
MrShinуж не знаю какой там оптимизаторКак ни странно, но даже убогий оптимизатор Аксесса умеет посчитать константные выражения, не содержащие нескалярных функций, и избавиться от них. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 15:15 |
|
|
start [/forum/topic.php?fid=45&fpage=36&tid=1610854]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 440ms |
0 / 0 |