【问题标题】:get row count in single query in mysql在mysql中的单个查询中获取行数
【发布时间】:2011-10-05 22:25:19
【问题描述】:

我有一个表,我想获取每列中记录的行数。 where column1 is not null column2 is not null column3 is notnull and uID='2'

如果记录是这样的

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

这里的计数是C1=1, c2=2,c3=1 我怎样才能在一个查询中做到这一点

【问题讨论】:

标签: mysql sql


【解决方案1】:

COUNT(colname) 应该忽略聚合中的NULL 值,因此查询实际上应该很简单。请注意,COUNT(*) 的行为不同,并且不会忽略 NULL 行。

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

更多关于NULL聚合行为is found here in the docs.的信息

【讨论】:

    【解决方案2】:
    SELECT COUNT(C1), COUNT(C2), COUNT(C3)
        FROM YourTable
        WHERE uID = 2
        GROUP BY uID
    

    【讨论】:

      【解决方案3】:
      SELECT COUNT(C1), COUNT(C2), COUNT(C3)
      FROM Mytable 
      WHERE uid=2
      

      默认不计算NULL值。

      【讨论】:

        【解决方案4】:

        从表中选择count(C1)、count(C2)、count(C3)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-11-13
          • 2015-08-04
          • 1970-01-01
          • 1970-01-01
          • 2015-03-29
          • 1970-01-01
          • 2020-07-24
          相关资源
          最近更新 更多