【问题标题】:MySQL - select a row using REGEXP within multiple columns if any word in query matchsMySQL - 如果查询中的任何单词匹配,则在多列中使用 REGEX 选择一行
【发布时间】:2018-02-04 23:32:46
【问题描述】:

我有三张桌子:

  1. 发帖
  2. 标签
  3. 过去的标签

所以,我想做一个简单的搜索,以仅使用标题、仅相关标签以及标题和标签来获取帖子 ID。

为了解释我的观点,举个例子:

在 post 表中,我有名为 (post_id, post_title) 的列

示例:post_id:1 - post_title:我的新车

在标签表中,我有名为 (tag_id, tag_name) 的列

示例:tag_id:5 - tag_name:red

在post_tags中我记录了“post”的post_id和“tag”的tag_id:

示例:post_id:1 - tag_id:5

所以每个帖子可以有很多标签(一个简单的关系)。

如果我输入以下任何查询,我想选择帖子 post_id:

  1. 夜宵车
  2. 红色汽车
  3. 红色超级跑车
  4. 超级红色汽车
  5. 红色

这是一种合并结果并匹配post_id,即使查询与一列无关。

谢谢。

【问题讨论】:

    标签: php mysql regex database


    【解决方案1】:

    对于“单词”匹配,了解FULLTEXT 索引。 REGEXP 不太实用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 2015-06-18
      相关资源
      最近更新 更多