Maison  >  Article  >  base de données  >  Comment vérifier si une valeur est un entier dans MySQL ?

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

WBOY
WBOYavant
2023-08-25 12:17:031933parcourir

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

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)

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

mysql> select cast('123456' AS UNSIGNED);

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)

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

Voici le résultat.

+---------------------------+
| CAST('78.90' AS UNSIGNED) |
+---------------------------+
|                        78 |
+---------------------------+
1 row in set, 1 warning (0.00 sec)

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)

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)

Afficher tous les enregistrements.

mysql> select *from CheckingIntegerDemo;

Voici le résultat.

+------------+
| Value      |
+------------+
| John123456 |
| 123456     |
| 123.456    |
+------------+
3 rows in set (0.00 sec

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]+$';

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]+$';

Ce qui suit est le résultat.

+--------+
| Value  |
+--------+
| 123456 |
+--------+
1 row in set (0.00 sec)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer