Modérateur PHPfrance |
10684 Messages
13 janv. 2009, 18:28
Je connais la clause LIKE mais elle ne cherche pas une correspondance stricte, plutôt une ressemblance.
Vi, c'est vrai que la fonction LIKE aime bien retrouver d'autres enregistrements que ceux attendus, parce qu'ils lui rappellent vaguement quelque chose qui pourrait potentiellement ressembler à ce que toi tu pourrais attendre...
Plus sérieusement, si tu veux une correspondance stricte, c'est effectivement l'opérateur "=" qu'il te faut utiliser, mais dans ce cas il te faut tester si l'enregistrement en base correspond strictement à la valeur "renault,citroen,ford,mercedes" et pas savoir s'il peut contenir la chaine "ford".
L'opérateur LIKE te permet de spécifier une partie de la chaine recherchée en remplaçant les parties de la chaine que tu ne connais pas par un joker. Elle convient donc tout à fait dans ton cas et te retourne tous les enregistrements qui respectent ton masque (et pas ceux n'ayant qu'une vague ressemblance avec celui-ci

).
Te retourne tous les enregistrements qui contiennent la chaine "ford".
Au pire, la "ressemblance" pourrait être liée à la casse des lettres, chose que tu peux forcer en changeant le type de champ ou en spécifiant qu'il s'agit d'une chaine binaire

Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...