Mysql 如何使用LIKE或REGEXP对子查询多个短语?
我试图在列上使用带有like的where子句。但是,我需要它使用子查询来搜索多个短语 这个问题类似于 现在我的查询是这样的Mysql 如何使用LIKE或REGEXP对子查询多个短语?,mysql,sql,subquery,where-clause,Mysql,Sql,Subquery,Where Clause,我试图在列上使用带有like的where子句。但是,我需要它使用子查询来搜索多个短语 这个问题类似于 现在我的查询是这样的 WHERE hashtag REGEXP 'indiana|iu|bloomington' 但是,我需要在字符串所在的位置执行子查询,这样我的查询就会是这样的 WHERE hashtag REGEXP (select name from hashtags where hid = 1) 上面这行显然不起作用,我不确定在这种情况下REGEXP是否是最好的。有没有办法使用子查
WHERE hashtag REGEXP 'indiana|iu|bloomington'
但是,我需要在字符串所在的位置执行子查询,这样我的查询就会是这样的
WHERE hashtag REGEXP (select name from hashtags where hid = 1)
上面这行显然不起作用,我不确定在这种情况下REGEXP是否是最好的。有没有办法使用子查询对多个字符串使用LIKE或REGEXP?也许有一种更好的方法可以在没有子查询的情况下做到这一点,而我目前还没有看到子查询。非常感谢您提供的任何帮助或指导。您可以这样做:
WHERE hashtag REGEXP (select GROUP_CONCAT(name SEPARATOR '|') from hashtags where hid = 1)
您还可以在REGEXP上加入:
SELECT mt.hashtag, ht.name
FROM mytable mt
JOIN hashtags ht
ON mt.hashtag REGEXP ht.name
WHERE ht.hid = 1;