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

发布于 2024-12-01 08:31:38 字数 516 浏览 0 评论 0原文

我正在尝试在列上使用带有 like 的 where 子句。但是我需要它使用子查询来搜索多个短语。

这个问题类似于 MySQL LIKE IN()?

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

WHERE hashtag REGEXP 'indiana|iu|bloomington'

但是我需要在字符串所在的位置执行一个子查询,所以我的查询将是这样的

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

上面的行显然不起作用,我不确定 REGEXP 在这种情况下是否是最好的。有没有办法使用子查询对多个字符串使用 LIKE 或 REGEXP?也许有一种更好的方法可以在没有子查询的情况下执行此操作,但我目前还没有看到。任何帮助或指导表示赞赏,谢谢。

I am trying to use a where clause with like on a column. However I need it to use a subquery to search against multiple phrases.

This question is similar to MySQL LIKE IN()?

Right now my query looks like this.

WHERE hashtag REGEXP 'indiana|iu|bloomington'

However I need to do a subquery where the string is so my query would be something like this

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

The above line obviously doesn't work and I'm not sure if REGEXP would be best in this situation. Is there a way to use LIKE or REGEXP against multiple strings using a subquery? Perhaps there is a better way to do this without a subquery that I just don't see at the moment. Any help or direction is appreciated, thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

闻呓 2024-12-08 08:31:38

你可以这样做:

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

You can do this:

WHERE hashtag REGEXP (select GROUP_CONCAT(name SEPARATOR '|') from hashtags where hid = 1)
白衬杉格子梦 2024-12-08 08:31:38

您还可以通过 REGEXP 加入:

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

You can also JOIN on a REGEXP:

SELECT mt.hashtag, ht.name
  FROM mytable mt
  JOIN hashtags ht
    ON mt.hashtag REGEXP ht.name
 WHERE ht.hid = 1;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文