Один из вопросов на «Стековерфлоу»
В подкасте Джоел и Джефф говорят об одном из вопросов, который задавал Джефф на сайте stackoverflow.com, и на который Джоел ответил очень изящным решением. Вот он: http://stackoverflow.com/questions/337704/. По-моему, это зашибись.
$db->query('SELECT * FROM table WHERE field IN (?@)', array('value', 'value'));
Хотя, конечно, если надо просто один раз выкрутиться — тамошнее решение весьма изящно.
Вот как это делается в каком-нить руби без лишних библиотек:
names = [«joel», «jeff»]
sql = «select * from Tags where Name in (?)».gsub(«?», names.map{|n| n.to_s.inspect}.join(«,»))
И, в отличие от предложения Джоэла, здесь эффективно используется индекс по полю Name. Возможно, иные подходы мотивированы тем, что в _их_ языках программирования нужно писать в 3,14 раз больше кода для очевиднейшего решения.