MySQL for Developers

Dealing with null values in MySQL

If you’ve worked with MySQL for any length of time, you’ve probably encountered null values at some point. Null values represent missing or unknown data and are a reality of working with databases. They can often cause frustrations and can result in unexpected behavior if not handled properly. In this article, we’ll explore some best practices for dealing with null values in SQL.

Comparing null Values

When dealing with null values in SQL, one of the first things to consider is how to compare null values. In MySQL, null is not equal to anything, including itself. For example, if we run the query select null = null we’ll get null back as the result.

Similarly, if we use the equals operator to compare a column with a null value, we’ll also get null back as the result. For example, if we run the query select null = one we’ll get null back as the result.

This behavior can be frustrating, especially when trying to filter or compare data. Let’s take a look at an example. Consider the following table, which contains information about films:

To account for null values, we can use the null-safe equal operator <=>, also known as the “spaceship operator.” This operator considers null and another null value as equal.

To compare a column with a null value, we can use the is null or is not null operators. These operators will return true or false, depending on whether the value is null or not null.

Representing Null Values

Finally, we need to consider how to represent null values in our queries. When a column has a null value, its value is unknown or missing. In some cases, we may want to replace null values with a default value or a value that better represents the missing data.

One way to do this is to use the ifnull statement. This statement checks if a value is null and replaces it with a specified value if it is. For example, if we want to replace null values in the Language ID column with the value “I don’t know,” we can use the following query:

SELECT
  IFNULL(language_id, 'I don’t know')
FROM
  films;

Alternatively, we can use the coalesce function. This function returns the first non-null value in a list of values. For example, if we want to select a preferred language ID, but use the original language ID as a fallback if the preferred ID is null, we can use the following query:

SELECT
  COALESCE(preferred_language_id, original_language_id) as language_id
FROM
  films;

In this example, if the preferred_language_id is null, the query will return the original_language_id instead.

Conclusion

Null values are a reality of working with databases, but they can often cause headaches if not handled properly. By using the null-safe equal operator, the is null and is not null operators, and the ifnull statement or coalesce function, we can effectively deal with null values in our SQL queries. With these tools in our toolkit, we can ensure that our queries are working as expected and that we’re getting accurate and complete results.

About this lesson

When dealing with nullable columns there are a few extra things you need to consider, which we'll cover here!

07:02
Closed captioned

Meet your instructor, Aaron Francis

Developer Educator at PlanetScale

I’m a dad to one-year-old twins and a software developer with a keen interest in processes and automation.

Feedback or questions? Reach out to our team at education@planetscale.com.

By submitting your email, you agree to the processing of your personal information by PlanetScale as described in the Privacy Policy.