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 20/11/2006, 14h42   #1
Membre confirmé
 
Développeur .NET
Inscription : août 2004
Messages : 113
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : août 2004
Messages : 113
Points : 224
Points : 224
Par défaut LIKE et caractère spéciaux type \

Bonjour,

Aujourd'hui je suis confronté à un problème relatif aux '\' dans les closes LIKE.

J'ai une requête dans laquelle j'effectue un WHERE repertoire.nom LIKE 'G:\%', ceci marche sans problème.

Par contre, si je fais un LIKE 'G:\', j'ai droit à un message d'erreur:
'Unterminated quoted string'

Alors que la donnée existe dans ma base.

De même, si je fais un WHERE dossier.emplacement LIKE 'G:\toto', je n'aurais aucun résultat, alors que la donnée figure encore une fois dans la base.

Problème de syntaxe ? Je sèche un peu, merci.
Reward est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 15h44   #2
Membre confirmé
 
Homme
Inscription : janvier 2006
Messages : 227
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations forums :
Inscription : janvier 2006
Messages : 227
Points : 239
Points : 239
bonjour as tu essayé de doubler le \
LIKE 'G:\\toto'
xavier-Pierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 13h47   #3
Membre confirmé
 
Développeur .NET
Inscription : août 2004
Messages : 113
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : août 2004
Messages : 113
Points : 224
Points : 224
Salut,

Oui c'est l'un des premiers trucs que j'ai tenté, cela ne change rien au résultat.

Un LIKE 'C:\toto' ou LIKE 'C:\\toto' ne me renverra aucun résultat, alors que j'ai un C:\toto comme donnée...

Reward est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 14h50   #4
Membre habitué
 
Avatar de LaNat
 
Inscription : avril 2005
Messages : 162
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : avril 2005
Messages : 162
Points : 140
Points : 140
(suggestion pas vérifiée du tout)
Si tu essayais en remplaçant \ par son code ascii (92)? Je viens de lire un truc sur le net comme quoi il y a une fonction CHR(code ascii) qui peut être utilisée dans une requête.
Tu concatènes avec la fonction CONCAT ou ||
Ce qui donnerait un truc du genre
LIKE 'c:'||CHR(92)
Essaye je te dit je ne garantis rien, mais c'est peut-être un début de piste
LaNat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 15h23   #5
Membre confirmé
 
Développeur .NET
Inscription : août 2004
Messages : 113
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : août 2004
Messages : 113
Points : 224
Points : 224
Alors en fait, en cherchant dans la doc (comme quoi ), il ne faut pas doubler le \, mais le quadrupler...

En effet, pour un WHERE nom='C:\\toto' , 2 \ suffisent, mais pour un LIKE il faut écrire WHERE nom LIKE 'C:\\\\toto'

Et là ça marche
Reward 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 18h45.


 
 
 
 
Partenaires

Hébergement Web