我正在尝试在关键术语表和页面之间进行搜索查询。
考虑下表。
页数
page_id page_name 1 cats 2 dogs 3 humans
关键词
key_id key_name key_page_id 1 purz 1 2 puzy 1 3 ruff 2 4 john 3 5 purz 3
如果搜索词是 purz AND puzy,我希望查询结果只返回页面 ID 1。
SELECT page_id FROM PAGES, KEYWORDS WHERE (key_name='purz OR key_name='puzy') AND key_page_id = page_id;
返回
page_id 1 3
我要
page_id 1
因为只有 purz 和 puzy 都与猫有关。
最佳答案
我相信要做到这一点,您必须两次加入关键字表:
SELECT p.page_id
FROM pages p
JOIN keywords k ON (k.key_page_id = p.page_id)
JOIN keywords k2 ON (k2.key_page_id = p.page_id)
WHERE k.key_name='purz'
AND k2.key_name='puzy';
关于MySQL 搜索引擎 - AND 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466434/