Как сделать подзапрос для нескольких фраз с LIKE или REGEXP? - PullRequest
1 голос
/ 22 августа 2011

Я пытаюсь использовать предложение where со значением like в столбце.Однако мне нужно использовать подзапрос для поиска по нескольким фразам.

Этот вопрос похож на MySQL LIKE IN ()?

Сейчас мой запрос выглядит так.

WHERE hashtag REGEXP 'indiana|iu|bloomington'

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

WHERE hashtag REGEXP (select name from hashtags where hid = 1)

Очевидно, что приведенная выше строка не работаетне уверен, что REGEXP будет лучшим в этой ситуации.Есть ли способ использовать LIKE или REGEXP для нескольких строк, используя подзапрос?Возможно, есть лучший способ сделать это без подзапроса, которого я сейчас не вижу.Спасибо за любую помощь или направление, спасибо.

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Вы можете сделать это:

WHERE hashtag REGEXP (select GROUP_CONCAT(name SEPARATOR '|') from hashtags where hid = 1)
1 голос
/ 22 августа 2011

Вы также можете присоединиться к REGEXP:

SELECT mt.hashtag, ht.name
  FROM mytable mt
  JOIN hashtags ht
    ON mt.hashtag REGEXP ht.name
 WHERE ht.hid = 1;
...