Requete "in"
Résolu
kyuubi6
-
kyuubi6 -
kyuubi6 -
Bonjour,
J'aimerais sélectionner toutes les lignes dont le champ "question4" contient le chiffre 14, il faut savoir que ce champs peut contenir plusieurs chiffre séparé d'un ";".
J'utilise la requete "select * from enquete where question4 in (14)", le problème est que il me renvoie les ligne contenant 14, les lignes du style "14;20;25" (génial) mais si j'ai "25;14" donc le 14 dans une autre position qu'en premier lieu il ne me l'a renvoie pas.
Comment puis je faire?
merci
J'aimerais sélectionner toutes les lignes dont le champ "question4" contient le chiffre 14, il faut savoir que ce champs peut contenir plusieurs chiffre séparé d'un ";".
J'utilise la requete "select * from enquete where question4 in (14)", le problème est que il me renvoie les ligne contenant 14, les lignes du style "14;20;25" (génial) mais si j'ai "25;14" donc le 14 dans une autre position qu'en premier lieu il ne me l'a renvoie pas.
Comment puis je faire?
merci
4 réponses
Je dirais :
Le IN marcherait peut être si le séparateur était une "," et pas un ";", mais je vais m'amuser à tester :p
select * from enquete where (question4 like "14;%") or (question4 like "%;14;%") or (question4 like "%;14") or (question4 = "14")
Le IN marcherait peut être si le séparateur était une "," et pas un ";", mais je vais m'amuser à tester :p
je suis avec mysql sur wamp (phpmyadmin), oui mais comme tu dis si je fais un like "%14%" il va me prendre les 114
je viens de la tenter dans mon phpmyadmin et il me dit que j'ai une erreur
"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''(^|;)14(;|$)' LIMIT 0, 30' at line 1
"
j'ai mis select * from enquete_energie where question4 = REGEX '(^|;)14(;|$)'
merci de ton aide
"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''(^|;)14(;|$)' LIMIT 0, 30' at line 1
"
j'ai mis select * from enquete_energie where question4 = REGEX '(^|;)14(;|$)'
merci de ton aide
j'ai essayé avec le regexp mais ca marche pas, en meme temps je comprends pas comment ca marcherait vu qu'après le where tu ne lui dis pas sur quel champ tu travail?
pour la deuxième solution ca a l'air d'être une bonne idée mais le souci est que je vérif plusieurs nombre et donc ma requête risque d'être hyper lourde
pour la deuxième solution ca a l'air d'être une bonne idée mais le souci est que je vérif plusieurs nombre et donc ma requête risque d'être hyper lourde