J'ai une BDD dans laquelle j'ai une valeur varChar qui est : 2,9,31
Je veux faire un sélect de toutes les entrées qui contiennent 2, mais pas 12,22,etc etc...
J'ai donc la requête suivante :
Code : Tout sélectionner
SELECT * FROM `mabase` WHERE colonne IN ( '2' , '%,2' , '2,%' , '%,2,%' )Code : Tout sélectionner
SELECT * FROM `mabase` WHERE colonne IN ( 2 , '%,2' , '2,%' , '%,2,%' )Ca fonctionne avec la version "lourde" :
Code : Tout sélectionner
SELECT * FROM `mabase` WHERE colonne = '2' OR colonne LIKE '%,2' OR colonne LIKE '2,%' OR colonne LIKE '%,2,%'Je veux réussir à passer ma requête avec le "IN" car c'est en fait la petite partie d'une très longue requête avec plein de AND, et je voulais pas commencer à me perdre avec des AND et des OR dans tous les sens, le "IN" me paraissait bien...
Pour finir, l'exemple est en requête "sql direct" mais en vrai c'est dans une requête préparée, donc le "2" étant remplacé par le contenue de mon $_POST['machin'], je ne vois pas comment "jouer" avec les simple quote de la seule reqûte "sql brute" qui fonctionne :
Code : Tout sélectionner
(...) AND a.c1 LIKE :fi_dep AND b.c2 IN (:fi_ge , :fi_ge2 , :fi_ge3 , :fi_ge4) AND b.c3 LIKE (...)Merci d'avance