Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 03/03/2008, 11h38   #1
Membre habitué
 
Inscription : avril 2003
Messages : 246
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 246
Points : 117
Points : 117
Par défaut Retrouver un mot entier dans un chaine (même en bout)

J'ai besoin de retrouver les lignes contenant un mot entier. En faisant :
Code :
SELECT * FROM maTable WHERE description LIKE ' %MOT% '
je récupère presque tout. Il me manque les descriptions commençant ou finissant par "MOT" (ex : "MOT truc"). Je ne veux pas récupérer les descriptions du genre "grandMOT" ou "MOTlong", donc je ne peux pas fait un "LIKE '%MOT%'".

Quelqu'un a une idée ?
__________________
Christophe
Christophe P. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 11h47   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 320
Points : 5 839
Points : 5 839
Quelle version d'Oracle ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 12h01   #3
Membre habitué
 
Inscription : avril 2003
Messages : 246
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 246
Points : 117
Points : 117
J'oublie toujours de la spécifier : 9
Donc pas d'expression régulière.
__________________
Christophe
Christophe P. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 12h23   #4
Membre habitué
 
Inscription : avril 2003
Messages : 246
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 246
Points : 117
Points : 117
J'ai trouvé un truc qui fonctionne :
Code :
SELECT * FROM maTable WHERE ' '||description||' ' LIKE ' %MOT% '
__________________
Christophe
Christophe P. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 12h23   #5
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 459
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 459
Points : 4 226
Points : 4 226
Attention le % indique n'importe quel(s) caractère(s), donc 'aa grandMOT ab' sortira dans ta requete.

Voici la solution
Code :
1
2
SELECT * FROM maTable 
WHERE INSTR(' '|| description ||' ', ' MOT ') > 0
ou
Code :
1
2
SELECT * FROM maTable 
WHERE ' '|| description ||' ' LIKE '% MOT %'
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2008, 10h33   #6
Membre habitué
 
Inscription : avril 2003
Messages : 246
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 246
Points : 117
Points : 117
Oups !

Merci.
__________________
Christophe
Christophe P. 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 08h14.


 
 
 
 
Partenaires

Hébergement Web