mysql数据库 isnull,ifnull,nullif的区别和用法

举报
仙士可 发表于 2023/06/14 11:50:07 2023/06/14
【摘要】 ISNULL(expr)如果expr的值为null,则返回1,如果不为null,则返回0;例如,查找一个订单的状态,如果状态为null则返回1,不为空则返回0select isnull(status) from orders;查出的数据复制IFNULL(expr1,expr2)如果expr1不为NULL,则返回expr1; 否则返回expr2。IFNULL()的返回值是数字或是字符串.例如查...
ISNULL(expr)
如果expr的值为null,则返回1,如果不为null,则返回0;
例如,查找一个订单的状态,如果状态为null则返回1,不为空则返回0
select isnull(status) from orders;
查出的数据
复制
IFNULL(expr1,expr2)
如果expr1不为NULL,则返回expr1; 否则返回expr2。
IFNULL()的返回值是数字或是字符串.
例如查询所有商品,把价格为null的改为0;
select ifnull(goods_price,0) from goods ;
复制
则返回所有商品价格,如果有null的则返回0;
NULLIF(expr1,expr2)
如果expr1和expr2相等,则返回null,否则返回expr1的值
例如
查询商品的促销价格和市场价格是否相等,不相等返回促销价格,相等则返回null
select nullif(goods_price,goods_marketprice) from goods;
当然,一般情况下相等也不返回null,这只是个实例;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。