Wenn Sie alle Zeilen zurückgeben müssen, die keine Zahlen enthalten, kann Folgendes hilfreich sein.
Genau genommen können Zahlen durch Wörter und andere Symbole dargestellt werden, aber für diesen Artikel bedeutet „Zahl“ einfach „Ziffer“. Wir finden also Werte, die keine Ziffern enthalten.
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 keine numerischen Ziffern enthalten:
SELECT ProductName
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';
Ergebnis:
+--------------------------+ | ProductName | +--------------------------+ | Left handed screwdriver | | Right handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Straw Dog Box | +--------------------------+
Wie erwartet werden nur die Zeilen zurückgegeben, die keine Zahlen enthalten.
Hier haben wir MySQLs NOT REGEX
verwendet -Funktion, um alle Zeilen zu finden, die einem Muster entsprechen. Das Muster umfasst alle Ziffern ab 0
bis 9
, plus jedes andere Zeichen.
Dies könnte auch so geschrieben werden:
SELECT ProductName
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');
Ergebnis:
+--------------------------+ | ProductName | +--------------------------+ | Left handed screwdriver | | Right handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Straw Dog Box | +--------------------------+