Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > count(*) и count(t.f)


Автор: tishaishii 6.10.2011, 18:52
Скажите, есть ли разница между `count(*)` и `count(t.f)` и в чём?

Автор: Akina 6.10.2011, 20:21
Код

mysql> create table test (id int);
Query OK, 0 rows affected (0.05 sec)

mysql> insert into test values (1),(null),(2),(null),(3);
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from test;
+------+
| id   |
+------+
|    1 |
| NULL |
|    2 |
| NULL |
|    3 |
+------+
5 rows in set (0.00 sec)

mysql> select count(*) from test;
+----------+
| count(*) |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

mysql> select count(id) from test;
+-----------+
| count(id) |
+-----------+
|         3 |
+-----------+
1 row in set (0.00 sec)

Автор: gcc 6.10.2011, 21:25
если f индекс, то может быть будет быстре с ним `count(t.f)`


Автор: tishaishii 7.10.2011, 06:40
То есть считает не NULL?
Как можно полностью охарактеризовать значения, которые участвуют в значение COUNT?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)