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

Comment détecter si une valeur contient au moins un chiffre numérique dans MariaDB

Lorsque vous travaillez avec MariaDB, vous pouvez parfois avoir besoin de renvoyer toutes les lignes contenant au moins un chiffre.

Dans de tels cas, vous pouvez trouver l'exemple suivant utile.

Exemple

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                         |
+-------------------------------------+
| Left Handed Screwdriver             |
| Right Handed Screwdriver            |
| Bottomless Coffee Cup               |
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Cette colonne contient évidemment des données de caractères, mais certaines lignes contiennent des nombres dans ces données de caractères (même s'ils ne sont pas stockés en tant que type numérique).

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                         |
+-------------------------------------+
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Comme prévu, seules les lignes contenant des nombres sont renvoyées.

Dans ce cas, nous avons utilisé le REGEXP fonction pour trouver toutes les lignes qui correspondent à un modèle. Le modèle englobe tous les chiffres numériques à partir de 0 à 9 , plus tout autre caractère.