equids Posté 19 Novembre 2008 Posté 19 Novembre 2008 Voila mon souci, je dois faire une requête SQL sur une table "sujet" par exemple. Je voudrais que dans le sujet, se trouvent par exemple deux mots : "mot1" et "mot2" SELECT sujet FROM `table` WHERE sujet like"%mot1%" AND sujet like"%mot2%"; C'est ce que je croyais devoir faire, mais ça ne fonctionne pas... Est ce qu'il y a une façon de demander 2 like sur un même attribut (ici "sujet") ? Comment faire ?
Dadou Posté 19 Novembre 2008 Posté 19 Novembre 2008 Chez moi ça marche, m'est avis que ta requete ne renvois tout simplement pas de résultats
equids Posté 19 Novembre 2008 Auteur Posté 19 Novembre 2008 Exact, ça fonctionne, excusez moi, mais une erreur de frappe d'un mot clé cherché m'a fait croire le contraire
Dan Posté 19 Novembre 2008 Posté 19 Novembre 2008 Si tu es certain de l'ordre dans lequel apparaissent les mots, tu peux utiliser like '%mot1%mot2%'
equids Posté 19 Novembre 2008 Auteur Posté 19 Novembre 2008 (modifié) Merci pour l'astuce Dan, ça ne me servira pas pour mon cas parceque je recherche dans des chaines inconnues à l'avance, mais je le garde pour plus tard J'ai par contre un autre souci : Je souhaite que les mots cherchés soient trouvés seuls, et non pas inclus dans un autre mot. Je donne un exemple : Je recherche le mot "jour" mais je ne veux que le résultat me soit retourné pour "journée" Or en écrivant sous la forme "%jour%" dans la requête SQL, ça donne ce problème... Modifié 19 Novembre 2008 par equids
jcaron Posté 20 Novembre 2008 Posté 20 Novembre 2008 select * from table where colonne regexp '[[:<:]]mot[[:>:]]' http://dev.mysql.com/doc/refman/5.1/en/regexp.html vers la fin Jacques.
equids Posté 20 Novembre 2008 Auteur Posté 20 Novembre 2008 (modifié) Merci Jacques, ça marche parfaitement bien Modifié 20 Novembre 2008 par equids
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant