簡體   English   中英

MySQL - 在一個查詢中使用不同的WHERE計數兩次

[英]MySQL - two counts with different WHERE in one query

field1 field2
a       1
b
c       3
e       4
f

我需要在查詢時計算field1而not empty field2

SELECT COUNT(field1) FROM table
+
SELECT COUNT(field2) FROM table WHERE field2 != ''

in one query結果應為5和3。

可能嗎?

易如反掌 :)

select count(field1), count(field2)
from my_table

結果:

+--------+--------+
| field1 | field2 |
+--------+--------+
| 5      | 3      |
+--------+--------+

如果field2列中的空值為'' (空字符串)而不是實際的NULL ,則可以嘗試:

select count(field1), sum(case when field2 != '' then 1 else 0 end)
from my_table;
SELECT
    (SELECT COUNT(field1) FROM table) AS count1,
    (SELECT COUNT(field2) FROM table WHERE field2 != '') AS count2

另一種方式:

SELECT COUNT(field1), COUNT(IF(field2='', NULL, field2))
    FROM ...

要將查詢結果與相同的列格式組合,請在它們之間使用UNION

SELECT w FROM x
UNION
SELECT y FROM z

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM