我试图在关键术语和页面的表之间进行搜索查询。MySQL搜索引擎 - AND关键字
请考虑以下表格。
PAGES
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和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两者都与猫。
另外我认为,从关键字更新我可以保证唯一性的临时关键字表可能更有效。我在这里也想到了可伸缩性。 –
您不需要临时表,只需在KEYWORDS表中的2个字段中添加唯一索引:key_name和key_page_id。这会保证你没有两次在同一页面上拥有相同的关键字。 ALTER TABLE' KEYWORDS' ADD UNIQUE( 'key_name', 'key_page_id' ) –
对不起,我知道我的例子是抽象的,也许没有指定这些重复的关键字的需要 –