Parfois, vous devrez peut-être rechercher dans une table de base de données uniquement les lignes contenant au moins un nombre dans une colonne donnée.
Techniquement, les nombres peuvent être représentés par des mots et d'autres symboles, mais ici "nombre" signifie "chiffre numérique".
Vous trouverez ci-dessous des exemples de recherche de lignes contenant au moins un nombre dans divers SGBD basés sur SQL.
SQL Server
Dans SQL Server, nous pouvons utiliser le LIKE
opérateur :
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Cet exemple renvoie le ProductName
colonne de la colonne Products
table où il y a au moins un chiffre dans le ProductName
colonne.
Oracle
Dans Oracle, nous pouvons utiliser le REGEXP_LIKE
condition avec un modèle d'expression régulière :
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
REGEXP_LIKE
d'Oracle condition est conforme à la norme d'expression régulière POSIX. Par conséquent, nous pouvons obtenir le même résultat avec le modèle suivant :
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]');
MySQL
Dans MySQL, nous pouvons utiliser le REGEXP
fonction :
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Nous pouvons également utiliser POSIX dans MySQL :
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]';
MariaDB
MariaDB a également un REGEXP
fonction, nous pouvons donc utiliser le même code qu'avec MySQL :
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Nous pouvons également utiliser POSIX dans MariaDB :
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]';
PostgreSQL
Voici l'équivalent de PostgreSQL :
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+';
Et l'équivalent POSIX :
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]';
SQLite
Dans SQLite, nous pouvons utiliser le code suivant :
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Le REGEXP
L'opérateur est une syntaxe spéciale pour le REGEXP()
fonction utilisateur dans SQLite.
Par conséquent, nous pouvons utiliser le code suivant pour obtenir le même résultat :
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);