您好,欢迎访问一九零五行业门户网

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

要检查给定值是否是字符串,我们使用cast()函数。如果该值不是数字则返回 0,否则返回数字值。这样我们就可以检查该值是否是整数。
情况 1 - 检查带有整数的字符串mysql> select cast('john123456' as unsigned);
以下是输出。表明该值不是数字,因此返回0。
+--------------------------------+| cast('john123456' as unsigned) |+--------------------------------+|                              0 |+--------------------------------+1 row in set, 1 warning (0.00 sec)
情况 2 - 仅检查整数值mysql> select cast('123456' as unsigned);
以下是输出。它表明该值是数字,因此返回值本身。
+----------------------------+| cast('123456' as unsigned) |+----------------------------+|                     123456 |+----------------------------+1 row in set (0.00 sec)
这个逻辑对于浮动也很有效。
以下是浮点值的查询。
mysql>  select cast('78.90' as unsigned);
这是输出。
+---------------------------+| cast('78.90' as unsigned) |+---------------------------+|                        78 |+---------------------------+1 row in set, 1 warning (0.00 sec)
与常规运算符的替代逻辑它适用于任何值的所有条件,甚至是浮点数。
让我们创建一个新表。
mysql> create table checkingintegerdemo   -> (   -> value varchar(200)   -> );query ok, 0 rows affected (0.88 sec)
将记录插入表中。
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)
显示所有记录。
mysql> select *from checkingintegerdemo;
这是输出。
+------------+| value      |+------------+| john123456 || 123456     || 123.456    |+------------+3 rows in set (0.00 sec
上面的输出中,只有 123456 是整数,其余都不是整数。
检查值是否为整数的语法。
select yourcolumnname from yourtablename where yourcolumnname regexp '^-?[0-9]+$';
我们使用正则表达式的查询。这将仅输出整数值。
mysql> select value from checkingintegerdemo where value regexp '^-?[0-9]+$';
以下是输出。
+--------+| value  |+--------+| 123456 |+--------+1 row in set (0.00 sec)
以上就是在 mysql 中如何检查一个值是否为整数?的详细内容。
其它类似信息

推荐信息