Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

count (*) và count (column_name), sự khác biệt là gì?

  • COUNT(*) đếm tất cả các hàng trong tập hợp kết quả (hoặc nhóm nếu sử dụng GROUP BY).
  • COUNT(column_name) chỉ đếm những hàng có column_name KHÔNG ĐẦY ĐỦ. Điều này có thể chậm hơn trong một số trường hợp ngay cả khi không có giá trị NULL vì giá trị phải được kiểm tra (trừ khi cột không thể null).
  • COUNT(1) giống với COUNT(*) vì 1 không bao giờ có thể là NULL.

Để xem sự khác biệt trong kết quả, bạn có thể thử thử nghiệm nhỏ này:

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;

Kết quả:

a   b   c
3   2   3


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cho phép truy cập từ xa vào cơ sở dữ liệu MySQL

  2. phpMyAdmin - không thể kết nối - cài đặt không hợp lệ - kể từ khi tôi thêm mật khẩu gốc - đã bị khóa

  3. Tôi có đang sử dụng tổng hợp kết nối JDBC không?

  4. Phân vùng bảng dữ liệu bóng đá hàng tỷ hàng sử dụng ngữ cảnh dữ liệu

  5. Sắp xếp một bảng MySQL theo hai cột