Manchmal müssen Sie eine Datenbanktabelle nur nach den Zeilen durchsuchen, die mindestens eine Zahl in einer bestimmten Spalte enthalten.
Technisch gesehen können Zahlen durch Wörter und andere Symbole dargestellt werden, aber „Zahl“ bedeutet hier „Ziffer“.
Im Folgenden finden Sie Beispiele dafür, wie Sie Zeilen finden, die mindestens eine Zahl in verschiedenen SQL-basierten DBMS enthalten.
SQL-Server
In SQL Server können wir den LIKE
verwenden Betreiber:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Dieses Beispiel gibt den ProductName
zurück Spalte aus den Products
Tabelle, in der ProductName
mindestens eine Ziffer enthält Spalte.
Orakel
In Oracle können wir den REGEXP_LIKE
verwenden Bedingung mit einem regulären Ausdrucksmuster:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
REGEXP_LIKE
von Oracle Bedingung entspricht dem POSIX-Standard für reguläre Ausdrücke. Daher können wir dasselbe Ergebnis mit dem folgenden Muster erhalten:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]');
MySQL
In MySQL können wir den REGEXP
verwenden Funktion:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Wir können POSIX auch in MySQL verwenden:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]';
MariaDB
MariaDB hat auch einen REGEXP
Funktion, sodass wir den gleichen Code wie bei MySQL verwenden können:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Wir können POSIX auch in MariaDB verwenden:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]';
PostgreSQL
Hier ist das PostgreSQL-Äquivalent:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+';
Und das POSIX-Äquivalent:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]';
SQLite
In SQLite können wir den folgenden Code verwenden:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Der REGEXP
Operator ist eine spezielle Syntax für REGEXP()
Benutzerfunktion in SQLite.
Daher können wir den folgenden Code verwenden, um dasselbe Ergebnis zu erhalten:
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);