Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 26/06/2007, 18h30   #1
Invité de passage
 
Inscription : juin 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 6
Points : 3
Points : 3
Par défaut Supprimer une chaine entre parenthese sur un select

Bonjour,

Je souhaite faire un select sur une table qui me retourne les differentes valeurs d'un champ d'une table mais que ce champ ne contienne plus les valeurs entre parenthese.

Exemple :

Key Valeur
1 test (pour vérifier)
2 apache (server) 2.0
3 mysql (bdd) 5.0
4 j2ee (java)

Je veux que mon select me retourne uniquement les 4 valeurs suivantes :
test
apache 2.0
mysql 5.0
j2ee


Je ne sais pas si cela est possible, je pensais utiliser les expressions régulières, mais je n'y suis pas arrivé.

Merci d'avance pour vos réponses.

Seb
sebg42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 18h38   #2
Membre éclairé
 
Avatar de jota5450
 
Jota Alves
Inscription : janvier 2006
Messages : 263
Détails du profil
Informations personnelles :
Nom : Jota Alves
Âge : 36

Informations forums :
Inscription : janvier 2006
Messages : 263
Points : 303
Points : 303
slt...


si tu n´as que 1 "(xxx)" au max,

Code :
1
2
3
4
5
6
7
 
 
SELECT 
concat(
SUBSTRING_INDEX(`ton_champ` ,"(",1),
SUBSTRING_INDEX(`ton_champ` ,")",-1))
FROM TABLE


edit: ca ne marche que si ta 1 e 1 seul "(XXX)"
jota5450 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 19h00   #3
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 423
Points : 6 423
Sinon, c'est plus complexe parce qu'il faut passer par les expressions régulières.

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 19h05   #4
Invité de passage
 
Inscription : juin 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 6
Points : 3
Points : 3
Merci pour vos réponses.

Effectivement, je pensais utiliser les expressions régulières pour exclure les valeurs entre parenthèse, crochet, accolade ....
Mais j'ai abandonné car la fonction REGEXP retourne uniquement une valeur 0 ou 1 qui dit si ca match ou pas. Je ne trouve pas de fonction qui utilise les expressions régulières et qui retourne une chaine suivant le contenu de l'expression.

Merci d'avance pour votre aide.

Seb
sebg42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 19h07   #5
Membre éclairé
 
Avatar de jota5450
 
Jota Alves
Inscription : janvier 2006
Messages : 263
Détails du profil
Informations personnelles :
Nom : Jota Alves
Âge : 36

Informations forums :
Inscription : janvier 2006
Messages : 263
Points : 303
Points : 303
resalut...


un autre code qui marche un peux plus

Code :
1
2
3
4
5
6
7
 
 
SELECT
 IF((instr(Ton_Champ,'('))>0,
concat(SUBSTRING_INDEX(Ton_Champ,"(",1),
SUBSTRING_INDEX(Ton_Champ,")",-1)),Ton_Champ)
FROM TA_TABLE

la, les perfs
jota5450 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 22h44.


 
 
 
 
Partenaires

Hébergement Web