MySql запрос массива или оптимизация множества WHERE
есть таблица: tab(id,name)
предположим в таблице 1000 или 10 000 или 1 000 000 записей, или даже больее.
есть массив индексов (id): mass[] = (1,15,16, ... n)
как сделать оптимизировать запрос массива mass из таблицы tab?
т.е. SELECT * FROM tab WHERE id=1 OR id=15 OR id=16 .... OR id=n LIMIT count(mass)
сделать оптимальным и быстрым, кол-во элементов mass может быть от 1 до 1000 или даже больше.
Ответы (4)
RSSandora
IN - эт просто другая форма записи. Не советую использовать - вдруг придется на другую СУБД переезжать, а там такого нет?..
ertoletiki
cam
Далее, если кол-во значений в mass тоже много (больше 100), лучше сделать отдельную таблицу, как рекомендовали выше, и соединить эти две таблицы subselect'ом или просто join'ом:
SELECT tab.* FROM tab join mass on tab.id=mass.id
ri-z
Только зарегистрированные и авторизованные пользователи могут отвечать.