|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 5 ![]() |
Bonjour,
J'ai une colonne filename avec des noms assez variés contenant un underscore du type : monfichier_200710.txt ou monfichieraa_200710.txt ou encore monfichierxx_200710.txt. Je désire faire un : SELECT filename FROM table WHERE filename NOT LIKE 'monfichier_'; Pour avoir uniquement les monfichieraa_200710.txt et les monfichierxx_200710.txt mais vu que le underscore est un caractère réservé, il me retourne 0 réponse et, évidemment, le LIKE 'monfichier_' me les retourne tous. Existe-t-il un REGEX pour que le underscore ne soit pas vu comme un caractère spécial de Postgresql ? J'utilise un Postgresql 8.0. Merci beaucoup pour votre aide. Cordialement. |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : août 2007 Messages : 128 ![]() |
Il faut placer un \ avant le _ comme l'indique la documentation :
http://www.postgresql.org/docs/8.0/s...FUNCTIONS-LIKE |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 5 ![]() |
Merci pour la réponse mais j'ai déjà essayé avec un '\_', ça ne fonctionne pas. J'ai aussi essayé de mettre un ESCAPE '' pour dédifférencier le underscore et essayé '%monfichier\137%' pour la valeur en octal de l'underscore mais ça ne passe pas non plus
Merci pour l'aide. |
|
|
00
|
|
|
#4 | ||||||
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 5 ![]() |
Je vous envoie ce que j'ai essayé si ça peut vous aider :
Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
essaye en répétant deux fois \
Code :
SELECT * FROM table1 WHERE label LIKE '%valeur\\_%'; |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 5 ![]() |
Ca a l'air de bien fonctionner avec le '\\_'.
Merci beaucoup pour l'aide ! (C'est tout de même étrange qu'il faille mettre 2 antislashes, sous MySQL, j'ai juste eu à en mettre qu'un seul et cela suffisait.) Bien cordialement. |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() |
spécifité de postgres...
a+ |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : août 2007 Messages : 128 ![]() |
La seule solution que je vois est de spécifier le caractère d'échappement, de cette façon :
Code :
SELECT * FROM table1 WHERE label LIKE '%valeur|_%' ESCAPE '|'; |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 5 ![]() |
Oui, cette méthode aussi fonctionne très bien.
Je vous remercie beaucoup pour votre aide. Cordialement. Kane. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com