2011-10-05 82 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)