I want to know how can i find all the values that are NULL in the MySQL database for example I\'m trying to display all the users who don\'t have an average yet.
Here i
I may be missing something mysql specific but this would work in sql server
SELECT COUNT(*) as num
FROM users
WHERE user_id = '$user_id'
AND average IS NULL
Also, you can:
Select Count(*) - Count(Average) as NullAverages
From Users
Where user_id = '$user_id'
A bit late but you can do it in MySQL 5.0.51:
SELECT COUNT(*) AS total, COUNT(field1) AS notNullFields1
FROM table
GROUP BY field5, field6
Regards.
you're on the right track. Remove '_' from 'IS_NULL' and change 'COUNT(average)' to 'COUNT(1)' and you will have it.
For more information on working with NULL in MYSQL see http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html
And for working with IS NULL specifically see
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_is-null
SELECT
COUNT(*) as num
FROM
users
WHERE
user_id = '$user_id' AND
average IS NULL
A more generic version (that doesn't depend on the where clause and hence limits your overall results):
SELECT
SUM(CASE WHEN average IS NULL THEN 1 ELSE 0 END) As null_num,
SUM(CASE WHEN average IS NOT NULL THEN 1 ELSE 0 END) AS not_null_num
FROM users
It's not better then the specific queries presented by other answers here, but it can be used in situations where using a limiting where clause is impractical (due to other information being needed)...