2010-07-17 10 views
20

Comment vérifier si une chaîne contenue dans un champ MySQL contient un nombre, puis les supprimer?Vérifier si une chaîne contient des nombres

table Exemple:

tbl_tags 
------------- 
| id | tag | 
------------- 
| 1 | hello | 
| 2 | hello2 | 
| 3 | 2hello | 
| 4 | hel3lo | 
------------- 

La seule façon que je peux penser est de faire chaque numéro individuellement et utiliser LIKE '% 1% OU LIKE '% 2%' etc. Mais doit être un moyen plus facile?

Répondre

40

Consultez le MySQL Regex methods. Quelque chose comme ce qui suit devrait fonctionner.

SELECT * FROM table WHERE tag REGEXP '[0-9]' 
+4

PS: Les ' '' guillemets sont nécessaires (je l'ai passé plus d'une heure à essayer '" 'sans succès) – aleskva

4
SELECT * 
FROM clients 
WHERE name REGEXP '^[[:digit:]]+$' 
ORDER BY `clients`.`country_id` DESC 
LIMIT 0 , 30 

c'est la réponse si vous êtes à la recherche des chaînes avec des chiffres seulement

+1

Je pense que l'OP cherche des chaînes qui contiennent * des nombres, donc vous pourriez probablement juste supprimer les '^' et '$' de l'expression rationnelle –

Questions connexes