2011-10-05 127 views
1

我有一個表,我想獲取每列中記錄的行數。其中COLUMN1不爲空列2不爲空欄3是NOTNULL和uid =「2」在mysql中的單個查詢中獲取行計數

如果記錄就像

uid C1 C2 C3 
2 Null 3  3 
2 2  2  Null 

這裏的計數爲C1=1, c2=2,c3=1我怎樣才能在一個查詢

+0

「集合(摘要)功能,諸如COUNT(),MIN()和SUM()忽略NULL值。」 http://dev.mysql.com/doc/refman/5.0/en/problems-with-null.html;) – MatTheCat

回答

2
做到這一點

COUNT(colname)應該忽略聚合中的NULL值,所以查詢應該很簡單。請注意,COUNT(*)行爲不同,並且不會忽略NULL行。在NULL聚集行爲is found here in the docs.

0
SELECT COUNT(C1), COUNT(C2), COUNT(C3) 
    FROM YourTable 
    WHERE uID = 2 
    GROUP BY uID 
0
SELECT COUNT(C1), COUNT(C2), COUNT(C3) 
FROM Mytable 
WHERE uid=2 

默認情況下

SELECT COUNT(C1), COUNT(C2), COUNT(C3) FROM table WHERE uid=2 

更多的信息,將不計算NULL值。

0
從表

SELECT COUNT(C1),計數(C2),計數(C3)