2011-08-22 55 views
1

我想在列上使用where子句。不过,我需要它使用子查询来搜索多个短语。如何使用LIKE或REGEXP对多个短语进行子查询?

这个问题现在我的查询看起来像这样类似MySQL LIKE IN()?

WHERE hashtag REGEXP 'indiana|iu|bloomington' 

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

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

上面一行显然是行不通的,我不知道是否会REGEXP在这种情况下最好。有没有办法使用LIKE或REGEXP对多个字符串使用子查询?也许有没有更好的方法来做到这一点,而没有我目前没有看到的子查询。任何帮助或方向表示赞赏,谢谢。

回答

2

你可以这样做:

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

您还可以参加在REGEXP:

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