【发布时间】:2011-07-02 20:05:48
【问题描述】:
好的,我做了一些研究,发现一个好的规范化文章和标签表应该是这样的:
articles table: article_id | article_text
tags table: tag_id | tag_text
article-tag table: article_id | tag_id
现在,我尝试这样做:假设我正在搜索 3 个标签,例如“asp.net”、“.net”、“c#”。检索具有这些标签的文章非常容易。但我不想要这个。我想要的是检索具有 exactly 这三个标签或 其中任何两个或一个但没有的文章包含 4 个或更多标签的文章。我不想要带有“asp.net”、“.net”、“c#”、“ruby”的搜索结果。我只想关注带标签的文章:
"asp.net", ".net", "c#"
.net", "c#"
"asp.net", ".net"
"asp.net", "c#"
"c#"
"asp.net"
".net"
什么是正确的 MySQL 查询?
【问题讨论】:
-
也许做一个辅助函数来计算匹配的标签(从可接受的标签列表中),然后根据计数为 2 或 3 进行选择。
-
我也是这么想的,我得出的结论是我真的需要计算匹配的标签。这是第一步,但剩下的呢?感谢您顺便编辑帖子(我是新手:))。