在MySQL数据库中存储空字符串与NULL?

sil*_*npi 3 string null database-design

我有一个PHP/MySQL应用程序,在某些情况下将"空白"值存储为''(空字符串),在其他情况下存储为NULLs.

这种混合格式在比较时肯定会引起问题,所以我想知道哪一种是更好的存储机制?''还是NULL

Sim*_*nni 5

虽然这很令人困惑,但实际上你应该存储null有很多原因:

  1. 检查null通常比检查大多数数据库中的空字符串更快
  2. Null通常表示"我不知道",空字符串表示"我知道:它是空的".它为您提供更好的语义.