mysql - 在mysql中的单行中显示数字和非数字列值的计数

标签 mysql sql

我有一个表测试,其中的列名既有整数值也有非整数值

+------------+
| 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/

相关文章:

mysql - 静态和/或AES_ENCRYPT加密

mysql - MDB2 准备好的语句并插入 NOW()

php - 我无法将 AND 添加到我的脚本中,以调用另一个 WHERE

mysql - 连接 4 个 SQL 表,3 个源 1 'container'

mysql - 使用 MySQL 为每个返回的行执行相关子查询

java - JooQ 中的 DuplicateKeyException

sql - 如何为 Spark SQL DataFrame 映射构造 ClassTag?

php - 未定义的类常量 'MYSQL_ATTR_INIT_COMMAND' ; phpinfo 显示没有 PDO 扩展,但 php -i (php -m) 显示

mysql - 如何优化使用依赖子查询的查询

php - 在进行 MySQL 查询之前删除一些数组元素