LIKE et antislash

LIKE et antislash - SQL/NoSQL - Programmation

Marsh Posté le 15-03-2011 à 21:23:04    

Bonjour,
 
Dans ma base de données, j'aimerais supprimer toutes les lignes dont le nom contient un \
J'ai donc la requête suivante :  

Code :
  1. DELETE FROM stats_teams_arene WHERE nom LIKE '%\\%'


 
Le problème est que si j'ai un enregistrement dont le nom est \\ et bien il n'est pas supprimé ...
 
Je peux toujours faire un  

Code :
  1. DELETE FROM stats_teams_arene WHERE nom LIKE '%\\%' OR nom LIKE '%\\\\%'

(et cela fonctionne), mais j'aimerais comprendre pourquoi la première requête ne fonctionne pas.
 
Merci d'avance ;)

Reply

Marsh Posté le 15-03-2011 à 21:23:04   

Reply

Marsh Posté le 16-03-2011 à 07:26:27    

Ca marche bien avec SQL Server, tu utilises quel SGBD?

Reply

Marsh Posté le 16-03-2011 à 09:52:23    

mysql


---------------
http://nisalon.labrute.com/
Reply

Marsh Posté le 16-03-2011 à 13:54:02    

tu as essayé de déclarer une variable slash = '\\'
 
et la passer dans ton like ?  
je propose, pas essayé  
 
j'utilise sql serveur aussi  
 

Reply

Marsh Posté le 16-03-2011 à 14:08:32    

En fait je viens de me rendre compte que même rechercher \ dans la bdd ne fonctionne pas :
Si je fais :

Code :
  1. SELECT * FROM `test` WHERE `nom` LIKE '%\\%'


Je n'obtiens aucune ligne
 
Voici ma bdd :

Code :
  1. --
  2. -- Structure de la table `test`
  3. --
  4. CREATE TABLE IF NOT EXISTS `test` (
  5.   `id` int(11) NOT NULL auto_increment,
  6.   `nom` varchar(100) collate utf8_bin NOT NULL,
  7.   PRIMARY KEY  (`id`)
  8. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=7 ;
  9. --
  10. -- Contenu de la table `test`
  11. --
  12. INSERT INTO `test` (`id`, `nom`) VALUES
  13. (1, 'a\\b'),
  14. (2, 'a\\\\b'),
  15. (3, 'a\\\\\\b'),
  16. (4, 'a\\\\\\\\b'),
  17. (5, 'a\\\\\\\\\\b'),
  18. (6, 'a\\\\\\\\\\\\b');


Message édité par nisalon_caje le 16-03-2011 à 14:16:16

---------------
http://nisalon.labrute.com/
Reply

Marsh Posté le 17-03-2011 à 15:06:32    

personne ? :(


---------------
http://nisalon.labrute.com/
Reply

Marsh Posté le 17-03-2011 à 19:20:25    

test un ^  
cela enlevé le critère spécial je crois  
 
SELECT * FROM `test` WHERE `nom` LIKE '%^\%'
 
dans le style  
 
peut etre  
 
SELECT * FROM `test` WHERE `nom` LIKE '%^\^\%'
 
sinon faire une cherche pour savoir quel caractère permet d'enleve le fait que \ soit considere comme un caractère spécial  

Reply

Sujets relatifs:

Leave a Replay

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