2010-07-17 22 views
20

Wie überprüfe ich, ob eine Zeichenfolge in einem MySQL-Feld eine Zahl enthält, und löschen Sie sie dann?Prüfen, ob eine Zeichenfolge Zahlen enthält

Beispieltabelle

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

Die einzige Art, wie ich denken kann, ist jede Nummer einzeln zu tun und LIKE '% 1%' OR LIKE '% 2%' usw. verwenden Aber es muss ein einfacher Weg sein?

Antwort

40

Überprüfen Sie die MySQL Regex methods. So etwas wie das Folgende sollte funktionieren.

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

PS suchen: Die ' '' Anführungszeichen sind notwendig (ich habe über eine Stunde damit verbracht, '" 'ohne Erfolg) – aleskva

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

das ist die Antwort, wenn Sie für Strings mit nur Ziffern

+1

Ich denke, das OP sucht nach Strings, die * Zahlen enthalten, also könnten Sie wahrscheinlich einfach die '^' und '$' aus der Regexp löschen –

Verwandte Themen