Подтвердить что ты не робот

Может ли MySQL автоматически преобразовывать пустые строки в NULL?

Существует отличная SO на пустых строках MySQL в сравнении с NULL здесь, MySQL, лучше вставить NULL или пустую строку?, однако она не принимает к учетной записи "единообразие" - т.е. если вы хотите иметь только один выбор в своих таблицах (т.е. пустую строку ИЛИ NULL), что это должно быть?

Мой вопрос: могу ли я заставить MySQL автоматически хранить пустые строки как NULL?

После прочтения предыдущего SO я обычно склонен хранить NULL, но проблема в том, что у меня много PHP-форм с необязательными полями, и (если они пусты), они возвращают пустые строки.

4b9b3361

Ответ 1

Вы можете заключить свои строки с помощью NULLIF()

Вы используете его следующим образом:

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

Ответ 2

В качестве альтернативы NULLIF вы можете установить по умолчанию значение NULL и просто не передавать пустые поля.