在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的行。










