【问题标题】:How to search by keyword MySQL如何通过关键字搜索 MySQL
【发布时间】:2019-01-12 05:12:44
【问题描述】:

我做了两张桌子

  1. 用于存储的关键字
  2. 有文章标题和关键字

在文章表中,我以集合形式存储关键字 id,例如 (1,2,3,6,7)

现在我想按用户价值的最大出现次数按关键字和标题进行搜索;

示例:
关键词表 |关键字|id |
| ----- | - |
|笔| 1 |
|纸| 2 |
|铅笔| 3 |
| A4 | 4 |
|标记| 5 |

文章表
标题关键字
魔术铅笔配纸1,2,4

用户搜索神笔

如何高效搜索?

【问题讨论】:

    标签: mysql database search keyword


    【解决方案1】:

    最好的解决方案是使该字段不应包含逗号分隔的所有关键字值,例如1,2,3,4

    你应该管理它的多对多表

    例如:

    • 关键词
    • 文章
    • keywords_to_articles(id、keyword_id、article_id)

    这样做之后,您的数据库将处于第三范式,并且可以通过执行轻松执行查询

    select a.*
    from articles a
    join keywords_to_articles ka on ka.article_id = a.id
    join keywords k on k.id = ka.keyword_id and k.name = '$keyword'
    

    这里我假设您在关键字表中存储在name 字段中。

    像上面提到的那样做将是一种有效的方法。

    【讨论】:

    • 那你需要使用countgroup by clause
    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2011-11-17
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    相关资源
    最近更新 更多