小编Hen*_*nri的帖子

Mysql 多对多关系查询。如何获取过滤帖子的所有标签?

我在 Stackoverflow 中遇到了很多关于这个问题的问题,但我认为这是不同的。

我想要做的是让用户能够按标签过滤帖子,以便人们只能看到剩下的标签进行过滤。换句话说,如果用户选择标签“tag1”,它会显示带有该标签的帖子,还会显示其他发布共享的标签,但隐藏过滤后没有可见帖子的标签。

我有表postsposts_tagstags。Posts_tags 有 post_id 和 tag_id。我已经设法使用特定标签集获得 post_ids:

SELECT pt.post_id
FROM posts_tags pt
    INNER JOIN tags t
        ON pt.tag_id = t.id
WHERE t.name IN ('tag1', 'tag2', 'tag3')
GROUP BY pt.post_id
HAVING COUNT(DISTINCT t.id) = 3;
Run Code Online (Sandbox Code Playgroud)

假设这个查询给出了 post_ids 1、2、3:

post 1 has tag1, tag2, tag3 and tag4
post 2 has tag1, tag2, tag3 and tag5
post 3 has tag1, tag2, tag3 and tag6
Run Code Online (Sandbox Code Playgroud)

现在我的问题是如何扩展查询以仅向用户返回 tag4、tag5 和 tag6,因为这些标签仍可用于进一步过滤帖子。如何实现这一目标?

关注性能也不错。我有 130000 …

mysql sql many-to-many

5
推荐指数
1
解决办法
3606
查看次数

在CakePHP中从多字搜索查询中形成查找条件

我的产品有多个字段,可以搜索(名称,文字,产品代码等).

我想要做的是爆炸搜索字符串,并确保在记录的某处找到每个单词.

用一句我通常会喜欢:

'OR'=>array(
    'name LIKE'=>'%' . $oneword . '%',
    'text LIKE'=>'%' . $oneword . '%',
    'code LIKE'=>'%' . $oneword . '%',
 )
Run Code Online (Sandbox Code Playgroud)

现在我觉得我必须制作与搜索字符串一样多的OR数组,并将它们全部包含在AND-array中.我只是不知道如何编码.

search cakephp

2
推荐指数
1
解决办法
2741
查看次数

标签 统计

cakephp ×1

many-to-many ×1

mysql ×1

search ×1

sql ×1