Оператор "Слияние" IN и LIKE в Mysql - PullRequest
2 голосов
/ 13 октября 2011

У меня проблема, и я думаю, есть ли лучший способ достичь моей цели. У меня есть этот запрос в Mysql для получения некоторых строк:

SELECT *
FROM table
WHERE field IN ('V','S','G','B')

То, что я хотел бы сделать, это запустить запрос, который извлекает строки, в которых поле имеет значение LIKE, как в списке IN. Я знаю, что тривиальным способом является использование этого запроса:

SELECT *
FROM table
WHERE field LIKE '%V%' OR field LIKE '%S%' OR
      field LIKE '%G%' OR field LIKE '%B%'

Я хочу знать, что есть оператор, который делает это, или, по крайней мере, если этот оператор не существует, лучший способ написать запрос.

Спасибо всем, кто мне поможет.

1 Ответ

1 голос
/ 13 октября 2011

Поместите значения в таблицу (Params), затем используйте

SELECT *
  FROM table
 WHERE EXISTS (
               SELECT * 
                 FROM Params
                WHERE table.field LIKE '%' + Params.col + '%'
              );

Также рассмотрите возможность помещения символов подстановки в значения в таблице Params.

...