2010-07-17 4 views
20

Come faccio a verificare se una stringa in un campo MySQL contiene un numero e quindi eliminarli?Verifica se una stringa contiene numeri

tabella Esempio:

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

L'unico modo che posso pensare è fare ogni numero individualmente e utilizzando COME '% 1%' O SIMILE '% 2%' ecc Ma deve essere un modo più semplice?

risposta

40

Controlla il MySQL Regex methods. Qualcosa come il seguente dovrebbe funzionare.

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

PS: I '' virgolette "sono necessari (ho speso più di un'ora cercando' "', senza successo) – aleskva

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

questa è la risposta, se siete alla ricerca di stringhe con solo cifre

+1

Penso che l'OP cerchi stringhe che contengono * numeri *, quindi potresti probabilmente eliminare i '^' e '$' dalle espressioni regolari –