首页 > 解决方案 > 如何通过关键字搜索 MySQL

问题描述

我做了两张桌子

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

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

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

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

文章表
标题关键词
带纸魔法铅笔1,2,4

用户搜索神笔

如何高效搜索?

标签: mysqldatabasesearchkeyword

解决方案


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

你应该管理它的多对多表

例如:

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

完成此操作后,您的数据库将处于第 3 范式,并且可以通过以下方式轻松执行查询

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字段中。

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


推荐阅读