In mySQL, unless you specify a default value for a column in a table, the default value is NULL, however you can't use the NULL value like other regular values when you use it in where condition. Why?

Conceptually, NULL means “a missing unknown value” and it is treated somewhat differently from other values.

Problem appears When you want to identy NULL value records in a large table, here is the solution.

Use is NULL, or is not NULL

Thus, you cannot use arithmetic comparison operators such as =, <, or <> to test for NULL. To use NULL in where condition, use is NULL or is not NULL operator. Here is one example:

mysql> select * from contacts where phone is NULL;

These SQLs shows the NULL value doesn't work with comparison operators.

mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
|     NULL |      NULL |     NULL |     NULL |
+----------+-----------+----------+----------+

Because the result of any arithmetic comparison with NULL is also NULL, you cannot obtain any meaningful results from such comparisons.

The NULL value in bollean operation

In MySQL, 0 or NULL means false and anything else means true. The default truth value from a boolean operation is 1.

The NULL value in order

When doing an ORDER BY, NULL values are presented first if you do ORDER BY ... ASC and last if you do ORDER BY ... DESC.

The NULL value is not zero, nor empty

As mentioned at the begining, NULL means “a missing unknown value” . A common error when working with NULL is to assume that it's zero or empty. 

 Empty and zero are in fact values, whereas NULL means “not having a value.”

Two SQLs below are very different:

mysql> select * from contacts where phone is NULL;
mysql> select * from contacts where phone='';