好吧,我做了一些研究,发现一个好的规范化文章和标签表应该是这样的:
articles table: article_id | article_text
tags table: tag_id | tag_text
article-tag table: article_id | tag_id
现在,我尝试做的是:假设我正在搜索3个标签,例如“asp.net”,“。net”,“c#”。检索具有这些标签的文章非常容易。但我不想要这个。我想要的是检索 完全 这三个标签或 任意两个或其中一个 的文章,但不是包含4个或更多标签的文章。我不希望搜索结果为“asp.net”,“。net”,“c#”,“ruby”。我只想关注标记文章:
"asp.net", ".net", "c#"
.net", "c#"
"asp.net", ".net"
"asp.net", "c#"
"c#"
"asp.net"
".net"
MySQL的查询是什么?
答案 0 :(得分:0)
我认为self join可能就是这样。如果您使用三个标签进行查询,则可以将文章标签表与自身连接3次。不过,我不确定这会如何扩展。
更新:使用此方法,您需要执行第二次查询以使用>排除这些匹配项3个标签。