Mysql like '% [Fermé]

Signaler
Messages postés
2
Date d'inscription
mardi 10 octobre 2000
Statut
Membre
Dernière intervention
5 janvier 2007
-
 atclik -
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

6 réponses

Salut
Enleves ton premier % et cela fonctionnera.

++
52
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

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 :-)
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
Salut,

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

'%' = Chaîne de caractères
'_' = Un seul caractère
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
https://dev.mysql.com/doc/refman/8.0/en/pattern-matching.html
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
59
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