Mysql like '% [Fermé]

rexxys 2 Messages postés mardi 10 octobre 2000Date d'inscription 5 janvier 2007 Dernière intervention - 20 juin 2006 à 06:05 - Dernière réponse :  atclik
- 10 juil. 2010 à 00:44
Bonjour,
je souhaiterais faire une requete qui me selectionne tous les champs dont le code postal commençe par 33 75 ou 24 ...
mais mon code postal dans la base s'articule comme ça 44240 a 5 chiffre et quand je fais un SELECT * FROM table WHERE code_postal LIKE '%40%' il va me lister aussi bien les 44240 que les 40 120 hors je ne souhaite qu'il me liste que les code postal commençant par 40 et non contennant le chiffre 40 33 ou 75 ...
merci de votre aide
Afficher la suite 

6 réponses

+52
Utile
Salut
Enleves ton premier % et cela fonctionnera.

++
Cette réponse vous a-t-elle aidé ?  
+25
Utile
il suffit d'enlever le premier : % ça donnera :
SELECT * FROM table WHERE code_postal LIKE '40%' ceci veut dire tout ce qui commence par 40 :-)
+15
Utile
A_Z pour les chaine commençant par A finissant par Z avec une lettre quelconque entre les deux(un underscore= une lettre )

'ass%' pour tout les mots commençant par ass

'%ass' pour tout les mots finissant par ass

'%ass%'pour tout le mots contenant ass peut importe ou

voila...
en espérant que ca aide
+5
Utile
Salut,

Je crois que tu devrais essayer '_' au lieu de '%'.

'%' = Chaîne de caractères
'_' = Un seul caractère
+2
Utile
Pour ton problème, il existe presque une seule solution efficace mais un peu difficile parfois (pas dans ton cas), c'est d'utiliser les expression régulières (c'est utilisable en sql comme dans autre langage respectueux), alors tu fait
select * from table where champs regex '^40'

(le SELECT * FROM table WHERE code_postal LIKE '40%' doit aussi marcher, mais bon il faut apprendre les regex pour hausser le niveau)

peti lien
http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html
fabrice11901 790 Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention - 20 juin 2006 à 08:23
-13
Utile
Salut
Ou là c'est compliqué ton truc lol !
Pourquoi dans ta table ta pas fais plusieurs champ un pour 44 l'autre pour 33 ça serai plus simple je pense