Самый быстрый способ сравнить массив с таблицей (mysql) - PullRequest
0 голосов
/ 25 мая 2011

Я долго ломаю голову и наконец возвращаюсь сюда, чтобы задать этот вопрос прямо вам.Это довольно простая задача, но я ищу самое быстрое решение.MySQL предпочел, но если вы укажете мне что-то вроде Cassandra, это было бы также замечательно.

1) Массив, содержащий до 1000 различных записей идентификатора пользователя (bigInt) 2) Таблица SQL, где это может произойтиcolumn

Так что же на самом деле самый быстрый способ проверить наличие одного из этих идентификаторов в строке и вернуть совпадающие строки.

Вы бы все равно сделали это, взорвав весь массив из 1000 записей исделать что-то вроде таблицы FROM WHERE IN ???

Любые советы, информация будет высоко ценится !!!

Saludos Boosh

Ответы [ 2 ]

2 голосов
/ 25 мая 2011

Вы бы все еще сделали это, развернув целый массив из 1000 записей и сделав что-то вроде таблицы FROM WHERE IN ???

Да.Как в: id IN (?, ?, ?, ...).

Или, если ваша БД поддерживает массивы (MySQL не поддерживает), id = ANY (ARRAY[?, ?, ?, ...]).

В качестве альтернативы, если они доступны с использованием небольшого подзапроса, выможно использовать:

id IN (SELECT id FROM ...)
0 голосов
/ 25 мая 2011

Вы можете выполнить массовый ввод всех записей вашего массива во временную таблицу, а затем выполнить внутреннее соединение со справочной таблицей, чтобы получить записи, в которых идентификатор присутствует в обеих таблицах.

Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...