Mysql SELECT WHERE большой список условий
нагуглил IN - я так понимаю это то, что надо?
угу, я бы пользовался им
индекс только создай по своей col1 

where работает быстрее чем in. Но выглядит тупо, согласен.
>where работает быстрее чем in
/0
/0
where работает быстрее чем inэто особенность mysql? или свойственно всем движкам DB?
я думал, что скорость выполнения запроса с where и in одинаковая
В интернетах встречаются утверждения, что из-за особенностей оптимизатора запросов MySQL IN при наличии соответствующих индексов работает несколько быстрее, чем явное перечисление через OR.
индекс только создай по своей col1таюлица innoDB не позволяет делать текстовые индексы

не знаю, как в MySql, но в оракле есть ограние на число условий в IN - 1000. Возможно, если такая ситуация возникнет, придется делать несколько IN(...)OR ... IN(...)
>это особенность mysql? или свойственно всем движкам DB?
я где-то слышал, что если делать in (select id from ...) то мускуль это разворачивает в join и работает это медленнее, чем in (1,2,3).
поскольку сам мускулем никогда не пользовался, то хз.
я где-то слышал, что если делать in (select id from ...) то мускуль это разворачивает в join и работает это медленнее, чем in (1,2,3).
поскольку сам мускулем никогда не пользовался, то хз.
> в оракле есть ограние на число условий в IN - 1000
в mysql единственное ограничение в которое реально можно упереться это на полную длину запроса.
в mysql единственное ограничение в которое реально можно упереться это на полную длину запроса.
> придется делать несколько IN(...)OR ... IN(...)
с этим поосторожнее, в mysql (не знаю как в последних версиях но точно такое было) запрос where col1 in (...) or col2 in (...) не использует индексы по col1 и col2, так что приходится писать union :-\
для одной и той же колонки не знаю, но опасность есть
надо проверять.
с этим поосторожнее, в mysql (не знаю как в последних версиях но точно такое было) запрос where col1 in (...) or col2 in (...) не использует индексы по col1 и col2, так что приходится писать union :-\
для одной и той же колонки не знаю, но опасность есть
надо проверять.в оракле есть ограние на число условий в IN - 1000.ибо некуй
Возможно, если такая ситуация возникнет, придется делать несколько IN(...)OR ... IN(...)для таких случаев есть джойны.
Оставить комментарий
PooH
Как лучше сделать следующее:есть таблица ~5к записей
из нее выбрать записи WHERE col1=cond1 OR col1=cond2 .... OR col1=cond150
просто тупо одним селектом? (подходящих условий может быть 200-400)
или как-то лучше?