2010-06-30 5 views
1

Je voudrais savoir s'il existe un moyen de sélectionner toutes les lignes d'une table où le contenu d'une colonne (varchar (255)) peut contenir des caractères autres que l'anglais standard (a-zA-Z) ou des caractères de différentes langues comme le grec, le français.Comment obtenir toutes les lignes contenant des caractères autres que [a-zA-Z] dans MySQL

Par exemple, si la table contient les données suivantes:

-- ID, Address -- 
| 1, "Test1" | 
| 2, "Tåst2" | 
| 3, "Test1" | 

Je voudrais seulement obtenir la 2e rangée (2, « Tåst2 »)

j'ai essayé d'utiliser l'expression régulière procédant comme suit :

SELECT * FROM contact_info WHERE address NOT REGEXP '[a-zA-Z]'; 

Mais pas de chance!

Toute aide serait appréciée!

Répondre

3

match le texte entier

SELECT * 
FROM contact_info 
WHERE address NOT REGEXP '^[a-zA-Z0-9]*$'; 
+0

Je suppose que le problème était avec le début et l'expression régulière de fin! Si je dois aussi permettre à d'autres caractères spéciaux comme «, <> » dois-je les utiliser à l'intérieur du [ ].droite? – ppolyzos

+0

Oui. Il y avait 2 problèmes: 1. les nombres n'étaient pas inclus dans l'ensemble, 2. sans les symboles étoile et fin et le quantificateur (*) votre match regex était positif s'il trouvait un caractère dans le texte. Je recommande de lire plus dans la documentation http://dev.mysql.com/doc/refman/5.1/fr/pattern-matching.html – Naktibalda

Questions connexes