Can MySQL automatically convert empty strings to NULL?

DatsunBing picture DatsunBing · Nov 15, 2012 · Viewed 15.7k times · Source

There is an excellent SO on MySQL empty strings versus NULL here, MySQL, better to insert NULL or empty string?, however it doesn't take in to account 'uniformity' - i.e. if you want to have just one choice in your tables (i.e. empty string OR NULL), which should it be?

My question is, can I get MySQL to automatically store empty strings as NULLs?

After reading the previous SO I am generally inclined to store NULL but the problem is that I have a lot of PHP forms with optional fields, and (when left blank) these return empty strings.

Answer

Wouter van Nifterick picture Wouter van Nifterick · Nov 15, 2012

You can enclose your strings with NULLIF()

You use it like this:

NULLIF('test','') --> returns 'test'
NULLIF(''    ,'') --> returns NULL