mysql: select * from matable where monchamp like '%\\%'

mysql: select * from matable where monchamp like '%\\%' - SQL/NoSQL - Programmation

Marsh Posté le 28-12-2002 à 03:10:58    

select * from matable where monchamp like '%\\%'
 
smarche pas :heink:
 
(pour selectionner les enregistrement dont mon champ contient le charactere '\';)
 
... ça renvoie un set vide, alors qu'il y a clairement des enregistrements qui contiennent le \ dans mon cas ...
 
une idée??


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 28-12-2002 à 03:10:58   

Reply

Marsh Posté le 28-12-2002 à 14:00:38    

:heink:
 
je pige pas non plus, je viens d'essayer...
 
Par contre en mettant '%\\\\%', ça fonctionne...  (testé sur MySQL 3.51 depuis MySQL-Front).  En jouant un peu je note qu'il y a un problème quand on a la string '\%' dans la clause like mais je ne m'explique pas pourquoi.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-12-2002 à 14:38:32    

Drasche a écrit :

:heink:
 
je pige pas non plus, je viens d'essayer...
 
Par contre en mettant '%\\\\%', ça fonctionne...  (testé sur MySQL 3.51 depuis MySQL-Front).  En jouant un peu je note qu'il y a un problème quand on a la string '\%' dans la clause like mais je ne m'explique pas pourquoi.


ben ton antislash despecialise le "wildchar" % => ca peut servir pour rechercher "%" dans ton champs : like '%\%%'

Reply

Marsh Posté le 28-12-2002 à 14:44:48    

voui, mais comme j'avais doublé le backslash/antislash, je pensais pas que ça avait une incidence sur le % qui suivait.  Bon va falloir que j'étudie ça de près car je vais en avoir besoin aussi.
 
Merci.  :jap:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-12-2002 à 15:03:02    

je vous file l'explication :p  
 

Citation :


Note: Comme MySQL utilise le système d'échappement du langage C (e.g., ``\n'';), il faut doubler toutes les occurrences dans les clause LIKE. Par exemple, pour rechercher le caractère ``\n'', il faut mettre la chaîne ``\\n''. Pour recherche le caractère for ``\'', il faut l'écrire ``\\\\'' (les backslashes sont supprimés une première fois par l'analyseur syntaxique, et une deuxième fois, quand la recherche est terminée : ce qui laisse un seul backslash à rechercher).  


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 28-12-2002 à 15:44:55    

Sh@rdar a écrit :

je vous file l'explication :p  
 

Citation :


Note: Comme MySQL utilise le système d'échappement du langage C (e.g., ``\n'';), il faut doubler toutes les occurrences dans les clause LIKE. Par exemple, pour rechercher le caractère ``\n'', il faut mettre la chaîne ``\\n''. Pour recherche le caractère for ``\'', il faut l'écrire ``\\\\'' (les backslashes sont supprimés une première fois par l'analyseur syntaxique, et une deuxième fois, quand la recherche est terminée : ce qui laisse un seul backslash à rechercher).  



rien compris :D


Message édité par --greg-- le 28-12-2002 à 15:46:28
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed