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

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

Si vous devez renvoyer toutes les lignes contenant au moins un chiffre dans MySQL, l'exemple suivant peut s'avérer 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            |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledge Hammer            |
| Chainsaw (Includes 5 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Cette colonne contient 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 Sledge Hammer            |
| Chainsaw (Includes 5 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 de MySQL 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.