PavelK
@PavelK

Как составить запрос на выборку данных, если нужно часть из них исключить через массив?

Приветствую!
В общем из таблицы нужно выбирать записи, но при этом есть массив айдишников которые не нужны.
т.е. например такой запрос:
select * from lots where lotID NOT IN (4,6,7,9,10......... и вплоть до пары тысяч)
как раз проблема в том, что не нужных айдишников может быть чуть ли не половина из всех доступных...
lotID в таблице первичный
Подскажите, нормально ли это? Имею ввиду то, что в простом запросе будет перечислено пара тысяч айдишников для IN ... думал может временную таблицу, а там через exists или может быть есть лучше способ?
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Steely
Зачем усложнять простую задачу?
Ответ написан
@heartdevil
плыву как воздушный шарик
Привет.

Точно не помню, но кажется сам запрос не может быть длиной в несколько тысяч символов. В этом плане у вас может быть проблема. Ну а если влезает, то ничего лучше where IN, думаю, нет.

У вас, видимо, есть функция, вытаскивающая набор id-шников и вы ее просто подставляете в IN().
Если хотите по-другому, вам надо будет напрямую писать запрос. Проследите, из какой таблицы тянутся id и укажите такой же запрос, как это делает, предполагаемая функция в условии IN().
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы