Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.117.109] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток!
Столкнулся с такой проблемой. Есть база данных, в базе таблица с большим количеством записей. В таблице 2 поля: Название и Номер. Есть массив с достаточно большим числом элементов (порядка 2000). Требуется извлечь те данные из таблицы, где содержимое поле Номер совпадает с одним из эл-тов массива. Подскажите, как это лучше сделать? Понятно, что при запросе написать в разделе WHERE 2000 раз "OR" не получится. Пытался сравнивать данные отдельно с каждым эл-том массива и добавлять в некоторую временную таблицу, однако скорость работы программы в таком случае ужасна. Какие еще есть варианты? Спасибо за помощь. |
Сообщ.
#2
,
|
|
|
Цитата mikhea @ Понятно, что при запросе написать в разделе WHERE 2000 раз "OR" не получится. а если select .. бла бла .. where номер in ('345435','345345','435345'....) |
Сообщ.
#3
,
|
|
|
или
select .. бла бла .. where номер not in ('345435','345345','435345'....) |
Сообщ.
#4
,
|
|
|
или создать таблицу из значений массива и только потом выполнять запрос-)
|
Сообщ.
#5
,
|
|
|
Спасибо большое, вариант с добавлением массива в таблицу очень помог
where nomer in... тоже работает, но ооочень медленно... |