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.
You can enclose your strings with NULLIF()
.
You use it like this:
NULLIF('test','') --> returns 'test'
NULLIF('' ,'') --> returns NULL