SQLite
 sql >> Base de données >  >> RDS >> SQLite

Détecter si une valeur contient au moins un chiffre numérique dans SQLite

L'exemple SQLite suivant renvoie toutes les lignes contenant au moins un chiffre numérique.

Exemple de données

Supposons que nous ayons une table appelée Products avec les données suivantes dans son ProductName colonne :

SELECT ProductName 
FROM Products;

Résultat :

ProductName                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Widget Opener                       
Bob's "Best" Widget                 
Blue Widget                         
Urban Dictionary Version 1.2        
Beer Water (375ml)                  

Exemple de requête

Nous pouvons utiliser la requête suivante pour renvoyer uniquement les lignes contenant des nombres représentés par des chiffres :

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

Résultat :

ProductName                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Urban Dictionary Version 1.2        
Beer Water (375ml)                  

Seules les lignes contenant des nombres sont renvoyées. Par "chiffres", j'entends des chiffres numériques. Les nombres peuvent également être représentés par des mots ou des symboles, mais cet exemple ne détecte que les chiffres numériques.

Dans SQLite, le REGEXP L'opérateur est une syntaxe spéciale pour le REGEXP() fonction utilisateur.

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

Résultat :

ProductName                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Urban Dictionary Version 1.2        
Beer Water (375ml)