MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ermitteln Sie, ob ein Wert in SQL mindestens eine Ziffer enthält

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);