Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1408 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Faire du pattern matching et des expressions reguliers sous MySQL?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire du pattern matching et des expressions reguliers sous MySQL?

n°1086827
PETOZAK
Posté le 17-05-2005 à 16:14:36  profilanswer
 

Hola,
Je verifie de ne pas inserer des doublons dans ma base pour cela je teste 2 champs de mon formulaire: Nom et telephone...
Exemple:
01.40.56.85.96
peut s'ecrire:
01-40-56-85-96
01/40/56/85/96
01 40 56 85 96
 
C'est le meme numero mais inscrit de maniere differente, comment faire pour faire du pattern matching sous MySQL avec un LIKE genre:
select * from Clients where XXX(tel,"[0-9]") like "0140568596"
 
Ce que je chereche c'est la fonction XXX :)


Message édité par PETOZAK le 17-05-2005 à 16:15:06
mood
Publicité
Posté le 17-05-2005 à 16:14:36  profilanswer
 

n°1086846
PETOZAK
Posté le 17-05-2005 à 16:27:57  profilanswer
 

elle existe cette fonction, j'ai foi en elle... :)
Aidez moi à la trouver :D

n°1086876
drasche
Posté le 17-05-2005 à 16:47:04  profilanswer
 

t'as cherché dans la doc?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1086889
PETOZAK
Posté le 17-05-2005 à 16:51:59  profilanswer
 

oui rien du tout à part les wildcards à utiliser :(

n°1086915
drasche
Posté le 17-05-2005 à 16:59:47  profilanswer
 

Hum, tu as dû mal regarder parce que j'ai trouvé en 2 secondes... tu utilises quelle version de MySQL?
 
C'est l'annexe G tout à la fin de la doc.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1086991
PETOZAK
Posté le 17-05-2005 à 17:24:57  profilanswer
 

j'ai la version qui est sur easyPHP 1.8

n°1087011
PETOZAK
Posté le 17-05-2005 à 17:31:57  profilanswer
 

je connais la fonction REGEXP mais moi ce que je veux faire c'est convertir pour tester exemple:
 
select tel from clients where LaisseUniquementAlphanumerique(tel)='0820363698'
 
comme ca si j'ai dans ma table '08-20-36-36-98' ou '08 20 36 36 98' ou ''08.20.36.36.98' ben ca me dira bien que le numero existe :)


Message édité par PETOZAK le 17-05-2005 à 17:32:30
n°1087048
PETOZAK
Posté le 17-05-2005 à 17:52:22  profilanswer
 

help me :(

n°1087103
drasche
Posté le 17-05-2005 à 18:45:04  profilanswer
 

ah ok, je pensais que tu cherchais le nom de la fonction [:joce]
 
Mais les expressions régulières, c'est un langage à soi tout seul. Et je suis loin d'être un spécialiste en la matière...


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1087443
PETOZAK
Posté le 18-05-2005 à 09:21:52  profilanswer
 

le probleme c'est pas les regex au fait c'est simplement trouver la fonction qui fait l'extraction suivant un pattern:
Autre exemple:
Extract("totot21557tata","[a-z]" ) me renverrais totottata
Ca ne peut que exister vu que cette fonction est presente dans tous les langages :(

mood
Publicité
Posté le 18-05-2005 à 09:21:52  profilanswer
 

n°1087479
GaSPaRD77
Posté le 18-05-2005 à 09:52:51  profilanswer
 

0869696969 REGEXP (([0-9]{2}).{0,){5}
 
http://dev.mysql.com/doc/mysql/en/ [...] tions.html


Message édité par GaSPaRD77 le 18-05-2005 à 09:53:13
n°1087493
PETOZAK
Posté le 18-05-2005 à 10:05:07  profilanswer
 

merci Gaspard mais le proble est ailleurs :(
le 0869696969 est la valeur à comparer avec tous les champs tel de la table clients c'est donc sur clients.tel qu'il faut faire l'extraction étant donné que les enregistrement 08-69-69-69 ou 08_69_69_69 ou 08.69.69.69 doivent etre renvoyes pour un select * from clients where extract(clients.tel,monregexp)='0869696969'
Je sais pas  si je suis claire :)

n°1087522
PETOZAK
Posté le 18-05-2005 à 10:28:09  profilanswer
 

J'ai trouvé une piste interresante:
 
SELECT REPLACE (
'aajhvcyuifiysa',
'a',
''
)  
 
-><>--->jhvcyuifiys
 
t'enleve bien remplace bien le 'a' par '' mais l'idéal ce serait de mettre comme 2eme parametre un  pattern pour remplacer en ensemble par '' :)


Message édité par PETOZAK le 18-05-2005 à 10:39:48

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Faire du pattern matching et des expressions reguliers sous MySQL?

 

Sujets relatifs
MySQL ? PostgreSQL ? Que chosir pour une grosse base ?liste des types retournés avec mysql_fetch_fields
Exporter resultat requete php/mysql a la suite d'un fichier existantConnecteur mySql avec eclipse
Mise à jour automatique de base Acces à Mysql ??[MySQL] erreur 1093 avec update
[MySQL] Réutiliser le nom d'une colonne comme donnéeProblème avec requête sous MySQL
[mysql]différence entre 2 dates 
Plus de sujets relatifs à : Faire du pattern matching et des expressions reguliers sous MySQL?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR