MySQL Left JOIN时指定NULL列返回特定值详解
更新时间:2013年07月02日 11:37:34 作者:
我们有时会有这样的应用,需要在sql的left join时,需要使值为NULL的列不返回NULL而时某个特定的值,比如0。这个时候,用is_null(field,0)是行不通的,会报错的,可以用ifnull实现,但是COALESE似乎更符合标准
coalesce 函数可以接受多个参数,将会返回这些参数中第一个非NULL的值,若提供的参数全部为NULL,则返回NULL
ifnull 函数和coalesce功能一样,只是只可以接受两个参数
if 函数接受三个参数,实现类似于三元判断符(?:)的功能,即第一个参数不为NULL且不为0时,返回第二个参数,否则返回第三个参数
复制代码 代码如下:
SELECT a.*,coalesce(t.cous,0) as count FROM brand as a
left join (select brandid as bid,count(1) as cous from shopbrand group by brandid) t on a.brandid=t.bid
ORDER BY count DESC LIMIT 0,20
上述语法是做一个统计,本身会返回NULL,但是为空的话并不是一个好的做法,所以用coalesce来解决
您可能感兴趣的文章:
- 超详细mysql left join,right join,inner join用法分析
- mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录
- 深入理解mysql之left join 使用详解
- MySQL在右表数据不唯一的情况下使用left join的方法
- MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程
- 解析mysql left( right ) join使用on与where筛选的差异
- mysql多个left join连接查询用法分析
- MySQL利用profile分析慢sql详解(group left join效率高于子查询)
- MySQL的LEFT JOIN表连接的进阶学习教程
- MySQL联表查询基本操作之left-join常见的坑
相关文章
MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法
这篇文章主要介绍了MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法,需要的朋友可以参考下2014-06-06
Jaspersoft Studio添加mysql数据库配置步骤
这篇文章主要为大家介绍了Jaspersoft Studio添加mysql数据库配置的步骤过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步2022-02-02
Ubuntu搭建Mysql+Keepalived高可用的实现(双主热备)
本文主要介绍了Ubuntu搭建Mysql+Keepalived高可用的实现(双主热备),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-11-11


最新评论