2013-05-20 32 views
1

是否可以在單個查詢中統計兩行?現在,我使用兩個查詢:Mysql在單個查詢中統計兩行

SELECT count(draft) AS draftCount FROM projects WHERE draft = 1 AND user_id = ? 

而另一個問題:

SELECT count(published) AS publishedCount FROM projects WHERE published = 1 AND user_id = ? 

我想這兩個查詢合併成一個這可能嗎?

回答

2
SELECT SUM(published) AS publishedCount, 
     SUM(draft) AS draftCount 
FROM projects 
WHERE user_id = ? 

據我瞭解您的查詢的publisheddraft值是1真正和0假。所以你可以只需SUM他們得到相同的結果。

+1

這種反應比其他 – Bryan

+0

感謝簡潔得多就像一個魅力。 –

2

試試這個

SELECT count(case when draft = 1 then draft end) AS draftCount, 
count(case when published = 1 then published end) AS publishedCount 
FROM projects 
WHERE user_id = ? 
0

嘗試UNION:

(SELECT count(draft) FROM projects WHERE draft = 1 AND user_id = 4) 
UNION 
(SELECT count(published) FROM projects WHERE published = 1 AND user_id = 4);