recherche avancée avec critère LIKE

Eléphanteau du PHP | 40 Messages

22 févr. 2005, 11:30

Salut à tous,

au boulot je dois faire des recherches dans une base de données qui a été créée par une sociète et j'ai quelques problèmes avec les critèreres de recherche. La table dans laquelle je fais des recherches contient des données sur des personnes (coordonnées, facture payée, etc)

J'ai un champs qui contient le nom et le prénom d'une personne. (Déjà pas genial, mais malheureusement je ne peux rien y faire => mode de programmation médiocre de la part de la société).

ID NOM FACTURE
1 Pierre Dupont 1
2 Marc Dubois 1
3 Dubois Marc 7
4 Jean Duchemin 3
....
....

Ce que dois pouvoir faire, c'est des recherches en utilisant la chaîne "Pierre Dupont" mais également la chaîne "Dupont Pierre"

Ma requête actuelle:

SELECT * FROM TABLE_PERS WHERE NOM LIKE '%Marc% %Dubois%' OR NOM LIKE '%Dubois% %Marc%'

Résultat:

ID NOM FACTURE
2 Marc Dubois 1
3 Dubois Marc 7

Quelqu'un a-t-il une solution plus élégante et surtout plus dynamique? Il y a aussi quelques noms avec plus de combinaisons et cela me fait des requêtes énormes.

Merci pour l'aide.

Daniel


Je dois pouvoir faire la recherche

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

22 févr. 2005, 12:05

Try this !

Code : Tout sélectionner

SELECT * FROM table_pers WHERE nom LIKE '%Dubois%' AND nom LIKE '%Marc%'
Ça marche tout assi bien et tu n'as plus à te soucier des combinaisons. :wink: