Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/10/2006, 16h00   #1
Futur Membre du Club
 
Inscription : janvier 2003
Messages : 113
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 113
Points : 19
Points : 19
Par défaut like et caractère underscore

Bonjour,

j'ai besoin de faire un "like" dans une de mes requètes de la manière suivante :

delete from of
where identgamme = 900000
and nomof like rec.nomof || '__';

problème : le nomof peut lui même contenir des underscore !!!!
du coup je risque de supprimer des enregistrements non voulus !!

ex : si nomof vaut many_10
je vais supprimer many_1001, many_1002, many_1003
mais aussi many11001, many21001, many31001
ce que je ne veux pas !!!

merci d'avance pour votre aide !!!

Pascale38
Pascale38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2006, 19h14   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
tu peux utiliser une expression réguliere :

SELECT * FROM of
WHERE identgamme = 900000
AND nomof ~ '^many_10';

ca ressortira tout ce qui commence par many_10
many_1001, many_1002, many_1003
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 09h09   #3
Futur Membre du Club
 
Inscription : janvier 2003
Messages : 113
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 113
Points : 19
Points : 19
merci pour ta réponse,
encore une question,
est ce que ça prendra bien ce qui commence par many_10
ET qui est suivi exactement de 2 caractères ?
(j'y connais rien en expression régulière, mais je vais m'y mettre !!)

en tout cas merci beaucoup pour ton aide !!

Pascale38
Pascale38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 09h25   #4
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
en fait l'expression que je t'ai donné cherche tous ce qui commence par many_10 donc many_1099 apparait mais aussi many_10999999999 aussi

si tu veux 2 caracteres apres et on va en deduire que ce n'est que des chiffre, il faut utiliser

AND nomof ~ '^many_10[0-9]{2}$';

Explication :

^many_10 signifie commence par
[0-9] le caractere apres est un nombre entre 0 et 9
{2} j'en veux exactement
$ indique qu'il n'y a rien apres, c'est la fin du mot
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 09h32   #5
Futur Membre du Club
 
Inscription : janvier 2003
Messages : 113
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 113
Points : 19
Points : 19
trop top, j'ai tout compris, impeccable, c'est exactement ce que je veux.
Et hop résolu !!!

merci !!!!

Pascale38
Pascale38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h17.


 
 
 
 
Partenaires

Hébergement Web