一篇文章里有多个标签,用关联表处理。如何能够查找 即包括 A 标签又包含 B 标签的文章。
这种基于标签的查询用关系型数据库会非常蛋疼,不论怎么处理性能都不会太好。如果对遇到对性能要求比较高的场景,建议用redis
对多个标签进行and
操作进行查询。
比如:
tag1对应book1、book2;
tag2对应book2、book3;
tag1 and tag2就可以查询到book2!
3 回答1.7k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
3 回答1.6k 阅读
2 回答976 阅读✓ 已解决
有两种方式,第一种是利用count,如果一篇文章包含A,B,D三个标签,那么pintag中指向该文章且标签为A或B或D的记录数一定是三条「这里可能需要去重」。下面就是利用这种方式实现的语句,只需要修改in后面括号内的内容和count=后面的数字即可。
第二种方式就是有多少个标签就join多少张表,虽然效率比较坑,而且拼接起来比较麻烦。但是胜在简单,如果只是临时用用而且对性能无要求,可以用这种方式将就。