Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erkennen Sie, ob ein Wert in MySQL mindestens eine Ziffer enthält

Wenn Sie alle Zeilen zurückgeben müssen, die in MySQL mindestens eine numerische Ziffer enthalten, könnte das folgende Beispiel nützlich sein.

Beispiel

Angenommen, wir haben eine Tabelle namens Products mit den folgenden Daten in seinem ProductName Spalte:

SELECT ProductName 
FROM Products;

Ergebnis:

+-------------------------------------+
| ProductName                         |
+-------------------------------------+
| Left handed screwdriver             |
| Right handed screwdriver            |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledge Hammer            |
| Chainsaw (Includes 5 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Diese Spalte enthält Zeichendaten, aber einige Zeilen enthalten Zahlen innerhalb dieser Zeichendaten (obwohl sie nicht als numerischer Typ gespeichert sind).

Wir können die folgende Abfrage verwenden, um nur die Zeilen zurückzugeben, die Zahlen enthalten, die durch numerische Ziffern dargestellt werden:

SELECT ProductName 
FROM Products
WHERE ProductName REGEXP '[0-9]+';

Ergebnis:

+-------------------------------------+
| ProductName                         |
+-------------------------------------+
| Smash 2000 Sledge Hammer            |
| Chainsaw (Includes 5 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Wie erwartet werden nur die Zeilen zurückgegeben, die Zahlen enthalten.

In diesem Fall haben wir MySQLs REGEXP verwendet -Funktion, um alle Zeilen zu finden, die einem Muster entsprechen. Das Muster umfasst alle Ziffern ab 0 bis 9 , plus jedes andere Zeichen.