MySQL - 在一个查询中使用不同的WHERE计数两次

Qia*_*iao 6 mysql

field1 field2
a       1
b
c       3
e       4
f
Run Code Online (Sandbox Code Playgroud)

我需要计算field1和not empty field2on查询:

SELECT COUNT(field1) FROM table
+
SELECT COUNT(field2) FROM table WHERE field2 != ''
Run Code Online (Sandbox Code Playgroud)

结果应该是5和3 in one query.

可能吗?

mač*_*ček 11

非常简单 :)

select count(field1), count(field2)
from my_table
Run Code Online (Sandbox Code Playgroud)

结果:

+--------+--------+
| field1 | field2 |
+--------+--------+
| 5      | 3      |
+--------+--------+
Run Code Online (Sandbox Code Playgroud)

如果field2列中的空值是''(空字符串)而不是实际值NULL,您可以尝试这样做:

select count(field1), sum(case when field2 != '' then 1 else 0 end)
from my_table;
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 7

SELECT
    (SELECT COUNT(field1) FROM table) AS count1,
    (SELECT COUNT(field2) FROM table WHERE field2 != '') AS count2
Run Code Online (Sandbox Code Playgroud)