mysql中NULL和null的区别

    接触php的web开发一段时间了,在进行数据库操作的时候经常会遇到一个问题,使得同一字段在页面显示时有3种类型NULL,null以及数字,当时的解决办法是将这一字段定义为varchar类型,在插入数据时加引号,一直没有深入研究。今天问题又出现了,当插入的值为null时,页面显示是空的!仔细研究发现:

   1、向数据表insert 'NULL'和'null'时,在数据表中显示的分别为NULL和空.
   2、向数据表insert null时,在数据表中显示也为NULL.
   3、从数据库select 'NULL'时,只有insert为'NULL'的部分,显示为NULL.
   4、从数据库select null时,只有insert为null的部分,显示为NULL.

   在页面展示中,insert 'NULL','null'和null分别显示为NULL,空,null,大致是这样的,但不同组件的兼容性有所不同,例如insert null在foxmail中显示为空

   进而,得出结论数据表中‘NULL’和null是不同的概念,虽然显示相同。实际上,null是一个比较特殊的字段。在MySQL数据库中,在不同的情形下,空值往往代表不同的含义。而’NULL‘是字符类型的,主要是两者显示相同,在对数据库不是很了解的同学则容易差生混淆⊙﹏⊙。

追加:
1、若数据库中字符类型默认为NULL,则在选择的时候应该‘NULL’

参考:http://blog.csdn.net/eroswang/article/details/8529817

原文地址:https://www.cnblogs.com/nerrissa/p/4046385.html