PB optim Mysql : Index et Where in (xx,yy,zz)

Fermé
florime Messages postés 2 Date d'inscription mercredi 2 avril 2008 Statut Membre Dernière intervention 3 avril 2008 - 2 avril 2008 à 18:03
florime Messages postés 2 Date d'inscription mercredi 2 avril 2008 Statut Membre Dernière intervention 3 avril 2008 - 3 avril 2008 à 11:43
Bonjour,

je travaille sur une table construite de la manière suivante :

SELECT element_id FROM table1 WHERE word_id in (1,2,3) AND word in (4,5,6)

avec la table1 ressemblant par exemple à cela :

element_id -- word_id
1 -- 1
1 -- 2
1 -- 3
1 -- 4
1 -- 5
2 -- 3
2 -- 4
2 -- 9
...

ce qui signifie en bref que pour chaque element_id il y a un ensemble de word_id qui lui correspond. Ces word_id peuvent se retrouver dans des element_id différent. Cette table est pensé comme un "noeud d'index" simplifiant les recherches dans une base de donnée complexe. Je ne souhaite effectivement pas faire une recherche avec un "element LIKE word".

Je pensais faire ensuite des recherches spécifique du type : element_id ayant les word_id équivalent à une liste de mot spécifique

Ceci ne fonctionne pas vraiment. Lorsque j'écris "WHERE word_id in (xxx,yyy,zzz) OR word_id in (ttt,eee,iii)" j'obtiens tous les résultats souhaitez. Mais lorsque j'écris "WHERE word_id in (xxx,yyy,zzz) AND word_id in (ttt,eee,iii)" pour obtenir la liste des elements contenant l'ensemble des mots, il me renvoie à chaque fois un réponse vide alors que des réponses existent.

je ne sais donc plus quoi faire pour résoudre ce problème.

Est ce que la construction de ce noeud d'index est absurde et comment écrire mes requete mysq pour accéder à toutes mes informations ?

merci beaucoup.
cordialement

1 réponse

florime Messages postés 2 Date d'inscription mercredi 2 avril 2008 Statut Membre Dernière intervention 3 avril 2008
3 avril 2008 à 11:43
euh, vous n'auriez pas une idée s'il vous plait
0