sql >> Database >  >> RDS >> Mysql

count(*) en count(column_name), wat is het verschil?

  • COUNT(*) telt alle rijen in de resultatenset (of groep als GROUP BY wordt gebruikt).
  • COUNT(column_name) telt alleen die rijen waar column_name is niet nul. Dit kan in sommige situaties langzamer zijn, zelfs als er geen NULL-waarden zijn, omdat de waarde moet worden gecontroleerd (tenzij de kolom niet nullable is).
  • COUNT(1) is hetzelfde als COUNT(*) aangezien 1 nooit NULL kan zijn.

Om het verschil in de resultaten te zien, kunt u dit kleine experiment proberen:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);
SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;

Resultaat:

a   b   c
3   2   3


  1. Jenkins gebruiken met Kubernetes AWS, deel 1

  2. ORA-01111 in MRP in fysieke standby-database

  3. Retour-ID als een rij bestaat, anders INSERT

  4. Die verdomd grote objecten