Ответ 1
Вы можете заключить свои строки с помощью NULLIF()
Вы используете его следующим образом:
NULLIF('test','') --> returns 'test'
NULLIF('' ,'') --> returns NULL
Существует отличная SO на пустых строках MySQL в сравнении с NULL здесь, MySQL, лучше вставить NULL или пустую строку?, однако она не принимает к учетной записи "единообразие" - т.е. если вы хотите иметь только один выбор в своих таблицах (т.е. пустую строку ИЛИ NULL), что это должно быть?
Мой вопрос: могу ли я заставить MySQL автоматически хранить пустые строки как NULL?
После прочтения предыдущего SO я обычно склонен хранить NULL, но проблема в том, что у меня много PHP-форм с необязательными полями, и (если они пусты), они возвращают пустые строки.
Вы можете заключить свои строки с помощью NULLIF()
Вы используете его следующим образом:
NULLIF('test','') --> returns 'test'
NULLIF('' ,'') --> returns NULL
В качестве альтернативы NULLIF вы можете установить по умолчанию значение NULL и просто не передавать пустые поля.