我試圖在關鍵術語和頁面的表之間進行搜索查詢。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' ) –
對不起,我知道我的例子是抽象的,也許沒有指定這些重複的關鍵字的需要 –