我有一个表测试,其中的列名既有整数值也有非整数值
+------------+
| names |
+------------+
| 123 |
| 123abc |
| 89 |
| dkkjdk |
| dkdn |
+------------+
我想像这样在一行中显示整数和非整数值的计数
integer_count non_integer_count
2 3
我尝试使用此查询打印整数值
select cast(names as signed) as int_val from test;
但是我得到了这个结果
+---------+
| int_val |
+---------+
| 123 |
| 123 |
| 89 |
| 0 |
| 0 |
+---------+
名称字段是一个 varchar(20) 字段。
最佳答案
解决方法
SELECT COUNT(CASE WHEN not names REGEXP '^[0-9]+$' THEN 1 END) AS ALPHA, COUNT(CASE WHEN names REGEXP '^[0-9]+$' THEN 1 END) AS DIGIT FROM test;
输出
+-------+-------+
| ALPHA | DIGIT |
+-------+-------+
| 3 | 2 |
+-------+-------+
关于mysql - 在mysql中的单行中显示数字和非数字列值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25399214/