Альтернатива для SELECT с несколькими ORed LIKE - PullRequest
1 голос
/ 03 января 2012

У меня есть «SELECT ... WHERE LIKE« i12.3% »ИЛИ« LIKE »i4.5%« ИЛИ LIKE »i16.7%« ИЛИ ...

Я ищу что-то вроде

column in ('i12.3%', 'i4.5%', 'i6,7%')

но "in" не работает с подстановочными знаками

Ответы [ 3 ]

3 голосов
/ 03 января 2012

Единственное, что может сработать, - это использование регулярных выражений :

WHERE column REGEXP '^i(12\.3|4\.5|6,7)%'

Но многим людям трудно писать и читать регулярные выражения.

1 голос
/ 03 января 2012

Я не думаю, что есть альтернатива, и я понимаю, что, поскольку ваш запрос имеет несколько OR, он будет медленным.Вы можете немного оптимизировать ситуацию, вложив в него другой запрос, который сначала выбирает только те строки, которые соответствуют LIKE 'i%'.

1 голос
/ 03 января 2012

Нет альтернативы.Делай то, что написал в своем названии.

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