Bonjour,
Pour mon problème je vais prendre une situation hypothétique.
Soit:
Une table "mots" contenant 100 000 entrées (mots du dictionnaire)
Une table "noms" contenant 400 000 entrées (noms de familles)
Je souhaite trouver toutes les occurrences de:
noms.nom REGEXP '^[a-z]?(mots.mot)[a-z]?$'
En clair, je cherche à trouver tous les noms de familles contenant un mot du dictionnaire à 2 lettre près.
Je tiens à utiliser regexp car j'ai simplifié la situation ici... En réalité la regexp est plus complexe.
Il faudra ensuite que j'insère les résultats dans une 3ème table, donc si ca peut être fait par mysql plutot qu'avec une boucle php c'est encore mieux!
La seule solution que j'ai trouvée travaille au niveau du script PHP:
SELECT * mots.mot puis une boucle for each, SELECT * where noms.nom REGEXP '^[a-z]?($data['mot'])[a-z]?$'
Mais inutile de dire que c'est très très lourd !!!
Des idées sur le problème?
J'utilise MySQL 3.23.1 mais si il faut que je mette à jour MySQL pour régler ce problème, je suis prêt à le faire.
Merci d'avance,
Romain
Partager