mysql中null用法小结

本文介绍了SQL中处理NULL值的方法,包括IFNULL、ISNULL、NULLIF等函数的应用,以及如何利用这些函数来优化查询效率。同时,文章还讨论了在进行聚合计算时如何处理NULL值,提供了一些实用的技巧。
摘要由CSDN通过智能技术生成

关于null的函数


      IFNULL(expr1,expr2)

         假如expr1不为NULL,则 IFNULL() 的返回值为expr1; 否则其返回值为 expr2;

      ISNULL(expr)

         如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0;

      NULLIF(expr1,expr2)

         如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为expr1。这和CASE  WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。

 

计算型函数对null值的处理


     COUNT、AVG、MAX、MIN、SUM

        会自动忽略null值的行(自动剔除null值得行,就当完全看不见)。比如avg 求平均值如果需要将null计算在内,可以给null的数值为默认为0 ,sql: select avg(ifnull(目标字段,0)) from 表名;

 

如何对null值字段进行处理


      is null  或者 is not null

        这个条件是单独处理字段值为null的条件,你不能使用 = NULL 或 != NULL 在列中查找 NULL 值;如果你在sql中使用的是 select * from `order` where user_id != 1 ,这里得到的数据并不会包括 user_id = null 的结果。需要更改为 select * from `order` where user_id != 1 or user_id is nul 

 

总结


        表设计之初,能给默认值就给默认值,别默认null了。只会给自己找麻烦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值