Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Добрый день. Вопрос больше теоретический. Есть ли простой способ проверки наличия пересечений в условиях выборки? Например: where a >= 0 and a <= 10 пересекается с условием where a >=- 10 and a <= 5 и с условием where a in (3,4) Без обращения к выбираемым таблицам. Подозреваю, что нет, но вдруг, что-то не вижу. Сложный способ - парсить все это дело вручную и дальше логику громоздить мне не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 14:50 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Hello, Vlad333! You wrote on 15 января 2015 г. 14:50:28: Vlad333> Сложный способ - парсить все это дело вручную и дальше логику громоздить > мне не надо. а сервер тут при чем? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 14:51 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Это делается чисто на сервере, клиент запускает некую процедуру, которая все отрабатывает. Эти условия сейчас хранятся в таблицах и собираются в процедуре и работают ч-з execute statement. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 14:55 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Hello, Vlad333! You wrote on 15 января 2015 г. 14:57:16: Vlad333> Эти условия сейчас хранятся в таблицах и собираются в процедуре и > работают ч-з execute statement. зачем? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 14:58 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Удобно, и достаточно универсально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:00 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
vlad333, Код: plaintext 1. 2. 3. 4. 5. 6. Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:01 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Hello, Vlad333! You wrote on 15 января 2015 г. 15:08:04: Vlad333> Удобно, и достаточно универсально. автоматизация хаоса приумножает энтропию. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:09 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Таблоид, Теперь у него в execute statement еще и это запихнется.... 2ТС: А эффект "усушки/утруски" вы уже оценили? Производительность небось сразу до небес взлетела.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:10 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
DarkMaster2ТС: А эффект "усушки/утруски" вы уже оценили? Производительность небось сразу до небес взлетела.... Это что за эффект такой? Производительность в данном случае не меняется уже лет 8 как эта система работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:23 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
vlad333, Тогда зачем разводить весь сыр-бор? Программирование ради программирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:28 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Таблоид, спасибо за идею. Тут больше используется in ( ) и по разным полям. А так же есть возможность подключить вообще любое sql условие можно даже сказать sql инъекцию, на сколько это можно отнести к ФБ. , но это уже хардкорное исключение и точно не подлежит автоматической проверке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:29 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
DarkMastervlad333, Тогда зачем разводить весь сыр-бор? Программирование ради программирования? Задача озвученная в первом сообщении заключается в автоматическом контроле этих самых условий. Сейчас это делается вручную глазами. Изменения редкие, но хочется чуть большего удобства, при минимальных затратах времени на код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:32 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
vlad333, так чего у вас в таблице-то записано ? пример её содержимого можете привести или это Тайна Великая ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:37 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
vlad333, Насколько я понял, есть набор значений (грубо) в строке: 4,5,6,10,11,12. Он преобразуется в x in (4,....). После преобразований - желательно получить (x>=4 and x<=6) or (x>=10 and x<=12) т.е. вместо простого перечисления чисел в in () вы пытаетесь еще прикрутить догику AND/OR. Как на мой взгляд - нисколько не увеличивает возможность контроля. Ну разве что для длинных диапазонов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 15:42 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Таблоид,DarkMaster , Вообще в таблице из которой надо добывать данные по условиям не только и даже не столько числовые данные, больше даже строковых. field1field2field3FK_ID1aaaa11aaaa21bbbb12bbbb11cccc1 В отдельной таблице условий для каждого столбца из таблицы данных по которому нужно делать отбор есть свое поле, содержимое которого вставляется в условие in(....) или not in (....) и идет в ES, FK_ID field1_conditionfield2_condition3331'aaaa','cccc' так ,например, для field2: 'aaaa','cccc' превращается в select(или update) * from table1 where field2 in ('aaaa','cccc') . Поле обозначенное FK_ID в результате обновляется и ставится соответствующее ИД из таблицы условий. Если для field1 в таблице условий есть не null значение, например 1, то оно подклеивается к остальным: select(или update) * from table1 where field2 in ('aaaa','cccc') and field1 in (1) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 16:06 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
DarkMastervlad333, вместо простого перечисления чисел в in () вы пытаетесь еще прикрутить догику AND/OR. Как на мой взгляд - нисколько не увеличивает возможность контроля. Ну разве что для длинных диапазонов. В самой первой версии условия хранились целиком в одном поле вообще и подставлялись как есть в where, сейчас использую in() или not in() по каждому, хотя осколок универсального условия еще остался, но пока удается его не использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 16:13 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
vlad333, если значения литералов записаны в отдельном столбце, то почему вы не делаете inner join с этим столбцом вашей исходной таблицы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 16:33 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
Таблоид, В таблице условий в одном поле одной записи идет перечисление значений, а не одно значение, поэтому join не подойдет, не совсем реляционная структура получилась, не говоря уже о нормализации. Были мысли разбить все это на кучу отдельных таблиц, но они так и оставались мыслями, слишком много нужно тогда было бы переделывать и на сервере и на клиенте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 16:48 |
|
||
|
Проверить пересечение условий в where
|
|||
|---|---|---|---|
|
#18+
vlad333, Список можно преобразовать в рекордсет соответствующей процедурой. Хотя правильно бы хранить их уже в виде таблицы. Из отдельных рекордсетов можно получить общий список через UNION сразу с отсечением лишних пересечений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 17:11 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38855434&tid=1563088]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 277ms |
| total: | 550ms |

| 0 / 0 |
