>  기사  >  데이터 베이스  >  COUNT(*) 대 COUNT(column_name): MySQL의 차이점은 무엇입니까?

COUNT(*) 대 COUNT(column_name): MySQL의 차이점은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-21 06:39:11960검색

COUNT(*) vs. COUNT(column_name): What's the Difference in MySQL?

COUNT(*)와 COUNT(column_name)의 차이점 이해

MySQL은 COUNT(*)와 COUNT(라는 두 가지 계산 함수를 제공합니다. 열_이름). 두 함수 모두 결과 집합의 행 수를 계산하지만 NULL 값을 처리하는 방식이 다릅니다.

COUNT(*)

  • 모든 행 수를 계산합니다. 모든 열에 NULL 값이 있는 행을 포함하여 결과 집합에 포함됩니다.
  • 구문: COUNT(*)

COUNT(column_name)

  • 지정된 열(column_name)이 NULL이 아닌 행만 계산합니다.
  • 구문: COUNT(column_name)

주요 차이점

Feature COUNT(*) COUNT(column_name)
NULL Values Includes rows with NULL values Excludes rows with NULL values
Performance May be slower in some cases even if the column has no NULL values Generally slower due to the need to check each value

COUNT(1)

COUNT(1) COUNT(*)와 동일합니다. 1은 결코 NULL이 될 수 없기 때문입니다. 따라서 결과 집합의 모든 행도 계산됩니다.

"table1"이라는 다음 테이블을 고려해 보세요.

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;

결과:

a   b   c
3   2   3

보시다시피 COUNT()는 NULL 값에 관계없이 세 행을 모두 계산합니다. "x" 열. COUNT(x)는 NULL 값이 있는 행을 제외하여 개수가 2가 됩니다. COUNT(1)은 1이 NULL이 될 수 없으므로 COUNT()와 동일한 결과를 생성합니다.

위 내용은 COUNT(*) 대 COUNT(column_name): MySQL의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.