如何从数据库中检索多个标签?

时间:2011-07-02 20:05:49

标签: mysql database

好吧,我做了一些研究,发现一个好的规范化文章和标签表应该是这样的:

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的查询是什么?

1 个答案:

答案 0 :(得分:0)

我认为self join可能就是这样。如果您使用三个标签进行查询,则可以将文章标签表与自身连接3次。不过,我不确定这会如何扩展。

更新:使用此方法,您需要执行第二次查询以使用>排除这些匹配项3个标签。