视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql删除字段为空的数据
2020-11-09 13:53:39 责编:小采
文档

空值与NULL的区别 我们先来理解mysql中空值与NULL的区别是什么吧 一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串 是相同的。这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的。NULL是指没有值,而则表示值是存在的,只不过是个空值

  空值与NULL的区别

  我们先来理解mysql中空值与NULL的区别是什么吧

  一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串’ ’是相同的。这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的。NULL是指没有值,而”则表示值是存在的,只不过是个空值。

  这就相当于厂子给职工分房子,一共只有一套,老张和老李都想要,可是经理告诉老张,下次有您的房子,可是老李压根就没人搭理他。所以老张的房子是“空”的,因为这是空白支票,不过毕竟经理张口了,而老李的房子就是NULL的,因为根本就没有人考虑过他。

  一些根本不懂空值和NULL有什么区别,误导初学者。

  所谓的NULL就是什么都没有,连都没有,在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用=,而要用IS关键字,, Mysql3.23.0或以后支持用 <=> 用来比较两个NULL值是否相等, 即 select * from table where id <=> NULL.

  为什么会出现NULL?这是来源于数据库的左右连接,不是凭空想出来的。比如:

  A(ID, Name), B(ID, Address)

  1, Name1 1, Shanghai

  2, Name2 3, Beijing

  当A左连接B则得到:

  1, Name1, Shanghai

  2, Name2, NULL

  当A右连接B则得到:

  1, Name1, Shanghai

  3, NULL, Beijing

  数据库的字段ID设为NOT NULL, 仅仅说明该字段不能为NULL, 也就是说只有在

  INSERT INTO table(ID) VALUES(NULL);

  这种情况下数据库会报错,而

  INSERT INTO table(ID) VALUES( ‘ ‘);

  这不能说明是NULL, 数据库系统会根据ID设的缺省值填充,或者如果是自增字段就自动加一

  等缺省操作。

  例

  值为NULL

  delete from 表名 where 字段名=NULL

  值为""空值

  delete from 表名 where 字段名=''

  总结

  判断NULL用is null 或者 is not null。 sql语句里可以用ifnull函数来处理

  判断空字符串‘’,要用 ='' 或者 <>''。sql语句里可以用if(col,col,0)处理,即:当col为true时(非null,及非'')显示,否则打印0

下载本文
显示全文
专题