Requete SQL Regexp dans le champ

Signaler
Messages postés
300
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
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.

florentcreate

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
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)
Messages postés
300
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
3
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 ^^
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
j'ai rien compris de tes AAX...