宣言
COUNT([DISTINCT | ALL] expr)
説明
SELECT ステートメントで検索された行のうち、NULL 以外の値の数を返します。一致する行が見つからない場合は、0 を返します。DISTINCT オプションを使用すると、expr の異なる値の数を返すことができます。
COUNT(*) は、NULL 値を含むかどうかに関係なく、検索された行の数を返す点で若干異なります。
例
obclient> SELECT * FROM test;
+----+------+------+
| id | ip | ip2 |
+----+------+------+
| 1 | 4 | NULL |
| 3 | 3 | NULL |
| 4 | 3 | NULL |
+----+------+------+
3 rows in set
obclient> SELECT COUNT(ip2), COUNT(ip), COUNT(DISTINCT(ip)), COUNT(*) FROM test;
+------------+-----------+---------------------+----------+
| count(ip2) | count(ip) | count(distinct(ip)) | count(*) |
+------------+-----------+---------------------+----------+
| 0 | 3 | 2 | 3 |
+------------+-----------+---------------------+----------+
1 row in set