web-dev-qa-db-fra.com

Vérifiez si une chaîne contient des nombres

Comment puis-je vérifier si une chaîne dans un champ MySQL contient un nombre puis les supprimer?

Exemple de tableau:

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

La seule façon dont je peux penser est de faire chaque numéro individuellement et d'utiliser LIKE '% 1%' OR LIKE '% 2%' etc. Mais il doit y avoir un moyen plus simple?

24
pjau

Consultez les méthodes MySQL Regex . Quelque chose comme ce qui suit devrait fonctionner.

SELECT * FROM table WHERE tag REGEXP '[0-9]'
58
Jason McCreary
SELECT * 
FROM clients
WHERE name REGEXP '^[[:digit:]]+$'
ORDER BY `clients`.`country_id` DESC 
LIMIT 0 , 30

c'est la réponse si vous cherchez des chaînes avec seulement des chiffres

4
user3200518