Flocreate
Messages postés300Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention27 mai 2012
-
30 juin 2009 à 16:31
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
2 juil. 2009 à 08:39
Bonjour a tous,
Il y a la requete SQL "WHERE [SN] REGEXP 'regularexpression' " qui permet de trouver les enregistrements où le champ SN correspond au RegExp
Ce que je souhaiterai, ce serrait l'inverse :
c'est a dire que le regExp se trouverai dans la valeur de champs et non dans le texte de la recherche.
Existe - t - il une requete sql permetant de faire :
" WHERE 'Valeur' REGEXP [NomDuChamps] "
Ou un quelcontre autre moyen.
Le cas exacte est le suivant :
J'ai une base de donnée sql contenant un champ nommé [SN]
et dont les valeurs des enregistrements sont par exemple "TRUC00BIDULE01XXX" ou "ABCXXDEF"
les 'X' symbolisent que n'importe quel digit ferrait l'affaire
(je peu remplacer les X par n'importe quelle autre text)
admetont que le mot avec lequel je fait la requeste est "TRUC00BIDULE01001" le résultat de la requeste devrai me retourner l'enregistrement "TRUC00BIDULE01XXX" ...
Je suis conscient que ce problème est tordu .
toute réponse est la bienvenue.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 30 juin 2009 à 19:29
Salut
Peut-être suffit-il de faire une recherche standard avec les caractères de substitution :
Sous SQL, le % remplace n'importe quelle suite de caractère (plusieurs éventuellement), alors que _ ne remplace qu'un seul caractère, exemple :
Where SN Like 'TRUC00BIDULE01_ _ _" (j'ai volontairement ajouté des espaces pour la lisibilité)
Ici, seuls les champs comportant 3 caractères (alpha ou numériques) après le 01 seront renvoyés
Where SN Like 'TRUC00BIDULE01%"
Ici, tous les champs comportant 0 ou plusieurs caractères à suivre seront renvoyés
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Flocreate
Messages postés300Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention27 mai 20123 30 juin 2009 à 23:18
merci pour la réponse,mais justement c'est mon soucis,
si j'ai les enregistrements :
AAXX
AAAX
AA0X
je souhaite que avec 'AA01' ca me renvoie le champs AAXX & AA0X
avec 'AAA9' ca me renvoie 'AAAX'
alors que, si je comprends bien, avec les requeste comme tu le propose, on aurai le cas classique :
si j'ai les enregistrements:
AA01
AAA1
AA21
avec 'AAXX' ca me renvoie 'AA01' & 'AA21'
avec 'AAAX' ca me renvoie 'AAA1'
bien sur les X dans le second cas sont remplacés par '_' ou autre chose en fonction du client,
mais dans le premier cas, c'est impossible puisque le X ou le _ sont dans le champ et non dans la requeste ...
et il se trouve que c'est le premier cas qui m'interresse ^^