Maison > base de données > tutoriel mysql > le corps du texte

Comment vérifier si une valeur est un entier dans MySQL ?

WBOY
Libérer: 2023-08-25 12:17:03
avant
1999 Les gens l'ont consulté

在 MySQL 中如何检查一个值是否为整数?

Pour vérifier si une valeur donnée est une chaîne, nous utilisons la fonction cast(). Renvoie 0 si la valeur n'est pas un nombre, sinon renvoie une valeur numérique. De cette façon, nous pouvons vérifier si la valeur est un entier.

Cas 1 - Vérification d'une chaîne avec un entier

mysql> select cast('John123456' AS UNSIGNED);
Copier après la connexion

Ce qui suit est le résultat. Indique que la valeur n'est pas un nombre, 0 est donc renvoyé.

+--------------------------------+
| cast('John123456' AS UNSIGNED) |
+--------------------------------+
|                              0 |
+--------------------------------+
1 row in set, 1 warning (0.00 sec)
Copier après la connexion

Cas 2 - Vérification uniquement des valeurs entières

mysql> select cast('123456' AS UNSIGNED);
Copier après la connexion

Ce qui suit est le résultat. Il indique que la valeur est un nombre, donc la valeur elle-même est renvoyée.

+----------------------------+
| cast('123456' AS UNSIGNED) |
+----------------------------+
|                     123456 |
+----------------------------+
1 row in set (0.00 sec)
Copier après la connexion

Cette logique fonctionne également bien pour les flotteurs.

Ce qui suit est une requête pour les valeurs à virgule flottante.

mysql>  SELECT CAST('78.90' AS UNSIGNED);
Copier après la connexion

Voici le résultat.

+---------------------------+
| CAST('78.90' AS UNSIGNED) |
+---------------------------+
|                        78 |
+---------------------------+
1 row in set, 1 warning (0.00 sec)
Copier après la connexion

Logique alternative avec opérateurs réguliers

Cela fonctionne pour toutes les conditions avec n'importe quelle valeur, même les nombres à virgule flottante.

Créons un nouveau tableau.

mysql> create table CheckingIntegerDemo
   -> (
   -> Value varchar(200)
   -> );
Query OK, 0 rows affected (0.88 sec)
Copier après la connexion

Insérez les enregistrements dans le tableau.

mysql> insert into CheckingIntegerDemo values('John123456');
Query OK, 1 row affected (0.10 sec)

mysql>  insert into CheckingIntegerDemo values('123456');
Query OK, 1 row affected (0.16 sec)

mysql> insert into CheckingIntegerDemo values('123.456');
Query OK, 1 row affected (0.16 sec)
Copier après la connexion

Afficher tous les enregistrements.

mysql> select *from CheckingIntegerDemo;
Copier après la connexion

Voici le résultat.

+------------+
| Value      |
+------------+
| John123456 |
| 123456     |
| 123.456    |
+------------+
3 rows in set (0.00 sec
Copier après la connexion

Dans la sortie ci-dessus, seul 123456 est un entier et les autres ne sont pas des entiers.

Syntaxe pour vérifier si une valeur est un entier.

select yourColumnName from yourTableName where yourColumnName REGEXP '^-?[0-9]+$';
Copier après la connexion

Nous utilisons des requêtes d'expressions régulières. Cela ne produira que des valeurs entières.

mysql> select Value from CheckingIntegerDemo where Value REGEXP '^-?[0-9]+$';
Copier après la connexion

Ce qui suit est le résultat.

+--------+
| Value  |
+--------+
| 123456 |
+--------+
1 row in set (0.00 sec)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal