如何使用LIKE或REGEXP对多个短语执行子查询?

时间:2011-08-22 18:14:04

标签: mysql sql subquery where-clause

我试图在列上使用where子句。但是我需要使用子查询来搜索多个短语。

此问题与MySQL LIKE IN()?

类似

现在我的查询看起来像这样。

WHERE hashtag REGEXP 'indiana|iu|bloomington'

但是我需要做一个子查询,其中字符串是这样的,我的查询将是这样的

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

上述行显然不起作用,我不确定REGEXP在这种情况下是否最佳。有没有办法使用子查询对多个字符串使用LIKE或REGEXP?也许有一种更好的方法可以在没有我目前看不到的子查询的情况下做到这一点。感谢您的任何帮助或指示。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

WHERE hashtag REGEXP (select GROUP_CONCAT(name SEPARATOR '|') from hashtags where hid = 1)

答案 1 :(得分:1)

您也可以加入REGEXP:

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