|
|
|
Альтернатива оператору NOT ??
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. приходиться работать с одним специфическим фреймворком для работы с БД в рамках одного большого проекта, а значит все запросы к БД генерирует этот фреймворк как посредник/помощник. К сожалению узнал, что фреймворк не умеет генерировать SQL запросы с оператором NOT. Вопрос у меня таков, есть ли альтернатива NOT, или как избежать его использования? Суть запроса примерно такова: SELECT * FROM XXX_TABLE WHERE NOT(FIELD1 = 'aaa' AND FIELD2 = 'bbb') AND NOT(FIELD1 = 'ccc' AND FIELD2 = 'ddd') как видно, мне необходимо исключить записи согласно представленным парам. Обратный ход - указать только те пары, которые нужно включить в запрос - не возможно, ввиду огромного количества вариантов. Кстати, подзапросы не смогут быть решением в моём случае, по той же причине что и NOT. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 02:58:06 |
|
||
|
Альтернатива оператору NOT ??
|
|||
|---|---|---|---|
|
#18+
BilletЗдравствуйте. приходиться работать с одним специфическим фреймворком для работы с БД в рамках одного большого проекта, а значит все запросы к БД генерирует этот фреймворк как посредник/помощник. К сожалению узнал, что фреймворк не умеет генерировать SQL запросы с оператором NOT. Вопрос у меня таков, есть ли альтернатива NOT, или как избежать его использования? Суть запроса примерно такова: SELECT * FROM XXX_TABLE WHERE NOT(FIELD1 = 'aaa' AND FIELD2 = 'bbb') AND NOT(FIELD1 = 'ccc' AND FIELD2 = 'ddd') как видно, мне необходимо исключить записи согласно представленным парам. Обратный ход - указать только те пары, которые нужно включить в запрос - не возможно, ввиду огромного количества вариантов. Кстати, подзапросы не смогут быть решением в моём случае, по той же причине что и NOT. Спасибо. WHERE (FIELD1 != 'aaa' OR FIELD2 != 'bbb').... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 04:31:43 |
|
||
|
Альтернатива оператору NOT ??
|
|||
|---|---|---|---|
|
#18+
javajdbc WHERE (FIELD1 != 'aaa' OR FIELD2 != 'bbb').... В этом случае вы вычеркните ВСЕ записи где FIELD1 равен ааа, или FIELD2 равен bbb. А мне необходимо вычеркнуть лишь те записи, где FIELD1 = 'aaa' and FIELD2='bbb' в одной записи(строке), т.е. пара значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 14:04:13 |
|
||
|
Альтернатива оператору NOT ??
|
|||
|---|---|---|---|
|
#18+
BilletjavajdbcWHERE (FIELD1 != 'aaa' OR FIELD2 != 'bbb').... В этом случае вы вычеркните ВСЕ записи где FIELD1 равен ааа, или FIELD2 равен bbb. А мне необходимо вычеркнуть лишь те записи, где FIELD1 = 'aaa' and FIELD2='bbb' в одной записи(строке), т.е. пара значений. тогда ваш сабжевый запрос - неправильный , это Код: sql 1. эквивалентно этому Код: sql 1. Законы де Моргана вдруг чё ---- а это авторА мне необходимо вычеркнуть лишь те записи, где FIELD1 = 'aaa' and FIELD2='bbb' в одной записи(строке), т.е. пара значений. просто Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 14:18:15 |
|
||
|
Альтернатива оператору NOT ??
|
|||
|---|---|---|---|
|
#18+
qwerty112а это авторА мне необходимо вычеркнуть лишь те записи, где FIELD1 = 'aaa' and FIELD2='bbb' в одной записи(строке), т.е. пара значений. просто Код: sql 1. "это" - отменяется :)) всё правильно и в сабжевом запросе и в запросе javajdbc авторВ этом случае вы вычеркните ВСЕ записи где FIELD1 равен ааа, или FIELD2 равен bbb. вот в этом ТС - ошибается, и WHERE NOT(FIELD1 = 'aaa' AND FIELD2 = 'bbb') и WHERE (FIELD1 != 'aaa' OR FIELD2 != 'bbb') "убирают" записи с FIELD1 = 'aaa' И FIELD2 = 'bbb' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 14:31:45 |
|
||
|
Альтернатива оператору NOT ??
|
|||
|---|---|---|---|
|
#18+
qwerty112вот в этом ТС - ошибается, и WHERE NOT(FIELD1 = 'aaa' AND FIELD2 = 'bbb') и WHERE (FIELD1 != 'aaa' OR FIELD2 != 'bbb') "убирают" записи с FIELD1 = 'aaa' И FIELD2 = 'bbb' Спасибо javajdbc и qwerty112 и де Морган, действительно и WHERE NOT(FIELD1 = 'aaa' AND FIELD2 = 'bbb') и WHERE (FIELD1 != 'aaa' OR FIELD2 != 'bbb') эквивалентны! Видимо по другой причине у меня не сработал альтернативный запрос в прошлый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 18:02:12 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=202&tid=1835791]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 361ms |

| 0 / 0 |
