2012-03-06 23 views
0

我使用這個MySQL查詢MySQL的計數(和和)領域,其中「不空」

SELECT COUNT(pros_a) + COUNT(pros_b) + COUNT(pros_c) + COUNT(pros_d) + COUNT(pros_e) AS pros_total FROM my_table WHERE contentid = 'id' 

數和每列和領域。但是這將返回所有字段(全部和空)。我只想計算填充字段,不包括空字段。我怎樣才能做到這一點?只是一點點......困惑! :)

任何幫助將不勝感激! 感謝

編輯:

MY_TABLE

pros_a pros_b pros_c pros_d pros_e 
------- ------ ------ ------ ------ 
good  (empty) good  good  (empty) 

預期的結果

pros_total 
---------- 
3 
+1

什麼是你的「空場」? – 2012-03-06 14:44:54

+0

你可以發佈樣本數據和預期的輸出嗎? – 2012-03-06 14:48:49

+0

@Salman A是的,抱歉。剛剛編輯。 – DavidF 2012-03-06 15:04:48

回答

1

COUNT(column)功能不算是NULL領域。它計數空的(零長度)字符串。因爲TRUE作爲1FALSE0評估在MySQL

SUM(column <> '') 

最後的作品:

您可以更改這些成:

COUNT(CASE WHEN column <> '' THEN column END) 

或。

0
SELECT COUNT(DISTINCT pros_a) + COUNT(DISTINCT pros_b) + COUNT(DISTINCT pros_c) + COUNT(DISTINCT pros_d) + COUNT(DISTINCT pros_e) FROM my_table WHERE contentid = 'id' 

上面應該工作。

0

在空字段的條件中使用,例如WHERE pros_a!=''或pros_a!='0'如果爲NULL。 pros_a!= '' AND pros_b!= ''