我很难想到这一个。非常感谢输入。内容总是在变化,但这里是我正在尝试做的一个例子。
第1课(关键词:5,9,17,18,25,22)
第2课(关键词:5,25,16,19,32)
第3课(关键词:1,9,17)
第4课(关键词:25,22,16,3,17)
现在,我正在根据故事1查询。我想输出任何与故事1共享> = 2个关键字的故事。
对于此示例,我的代码应输出:
故事1
故事2
故事4
故事2分享关键词5,25
故事4分享关键词25,22,17
不输出故事3只是因为它只与STORY 1共享1个关键字
有什么想法吗?
答案 0 :(得分:1)
像(未经测试)
之类的东西SELECT k2.story_id
FROM keywords k1
JOIN keywords ks ON k1.keyword = k2.keyword AND k1.story_id < k2.story_id
GROUP BY
k1.story_id
WHERE
k1.story_id = @story_id
HAVING COUNT(*) > 1
可能适合你。
答案 1 :(得分:0)
你可以通过SQL实现它,就像Unreason所展示的那样,用PHP做起来也很容易。只需将每个Story设为一系列关键字,然后使用array_intersect(story_1, story_n)
即可。保持结果数组包含两个以上的项目。