J'essaie de faire une requête de recherche entre un tableau de termes clés et de pages.Moteur de recherche MySQL - AND mots-clés
Considérez les tableaux suivants.
PAGES
page_id page_name 1 cats 2 dogs 3 humans
KEYWORDS
key_id key_name key_page_id 1 purz 1 2 puzy 1 3 ruff 2 4 john 3 5 purz 3
Lorsque les termes de recherche sont Purz ET Puzy Je veux que les résultats de la requête pour renvoyer uniquement id page 1.
SELECT page_id FROM PAGES, KEYWORDS WHERE (key_name='purz OR key_name='puzy') AND key_page_id = page_id;
Retours
page_id 1 3
Je suis désireux
page_id 1
Parce que les deux sont liés Purz ET Puzy Cats.
J'ai également considéré qu'il pourrait être plus efficace de créer une table de mots-clés temporaire mise à jour à partir de mots-clés où je peux garantir l'unicité. Je pense aussi à l'évolutivité ici. –
Vous n'avez pas besoin de table temporaire, ajoutez seulement un index unique sur 2 champs: key_name et key_page_id dans la table KEYWORDS. Cela vous garantira que vous n'avez pas deux fois le même mot-clé pour la même page. ALTER TABLE 'KEYWORDS' AJOUTER UNIQUE ( ' key_name', 'key_page_id' ) –
Désolé, je sais que mon exemple est abstrait et n'a peut-être pas précisé le besoin de ces mots clés en double –