在MySQL中,COUNT()
函数用于统计表中的行数。但是,它的行为会根据你所使用的具体 COUNT()
函数的变种而有所不同。
COUNT(*)
:这会统计表中的所有行数,无论列中的值是否为NULL。
SELECT COUNT(*) FROM your_table;
上述查询会返回 your_table
表中的总行数,包括那些列中包含NULL值的行。
2. COUNT(column_name)
:这会统计在指定列中非NULL的行数。
SELECT COUNT(your_column) FROM your_table;
上述查询会返回 your_table
表中 your_column
列非NULL值的行数。
举例:
假设你有一个名为 students
的表,其中有一个名为 name
的列。
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50)
);
INSERT INTO students (id, name) VALUES (1, 'Alice');
INSERT INTO students (id, name) VALUES (2, NULL);
INSERT INTO students (id, name) VALUES (3, 'Bob');
现在,如果你执行以下查询:
SELECT COUNT(*) FROM students; -- 结果为 3
它会返回3,因为表中有三行。
但是,如果你执行以下查询:
SELECT COUNT(name) FROM students; -- 结果为 2
它会返回2,因为 name
列中只有两行是非NULL的。
总之,COUNT(*)
会统计所有行,而 COUNT(column_name)
只会统计该列中非NULL的行。