Вместо этого:
WHERE col LIKE '%this%' AND col LIKE '%that%' AND col like '%something else%'
вы можете попробовать это для более быстрый способ:
WHERE col REGEXP 'this|that|somethingelse'
, но следует помнить, что это только в том случае, если существует определенный шаблон еще я не думаю, что это может быть сокращено.
EDIT: -
Как ваш обновленный вопрос говорит, если строки, которые вы ищете не в предсказуемом порядке, то я не думаю, что есть какой-нибудь способ, чтобы сократить ваш LIKE заявления. Вы должны использовать его так же, как вы его используете прямо сейчас.
Если слова появляются в определенном/последовательном порядке, вы можете попробовать '% this%, что% something else%', в противном случае: нет, вы не могли бы сократить это, кроме перехода на полнотекстовый индекс, позволяющий пропустить подстановочный бизнес. '% ..%' являются абсолютным дерьмом для производительности поиска - вы не можете использовать индексы, и каждый запрос должен выполнять полное сканирование таблицы. –