MySQL ifnull函数判断字段值为null时使用默认值
来源:互联网 发布:arm linux发行版 编辑:程序博客网 时间:2024/05/19 12:12
在使用left join等联表查询时,常遇到某些字段为null,一般都在后台语言使用if a==null 判断做处理,其实MySQL本身也有一个ifnull函数可以处理。
假设有两张表
name表:
mysql> select * from name;+------+-----------+| id | user |+------+-----------+| 1 | xiaoqiang || 2 | lisi || 3 | xiaowu || 4 | laoliu |+------+-----------+4 rows in set (0.00 sec)
phone表:
mysql> select * from phone;+------+-------+| id | phone |+------+-------+| 2 | 110 || 3 | 119 |+------+-------+2 rows in set (0.00 sec)
联表查询结果:
mysql> select a.*,b.phone from name a left join phone b on a.id=b.id;+------+-----------+-------+| id | user | phone |+------+-----------+-------+| 1 | xiaoqiang | NULL || 2 | lisi | 110 || 3 | xiaowu | 119 || 4 | laoliu | NULL |+------+-----------+-------+4 rows in set (0.01 sec)
其中id=1、id=4两行的phone值为null,我们可以使用ifnull函数判断它为null时给一个默认值:
mysql> select a.*,ifnull(b.phone,0) from name a left join phone b on a.id=b.id; +------+-----------+-------------------+| id | user | ifnull(b.phone,0) |+------+-----------+-------------------+| 1 | xiaoqiang | 0 || 2 | lisi | 110 || 3 | xiaowu | 119 || 4 | laoliu | 0 |+------+-----------+-------------------+4 rows in set (0.00 sec)
甚至也可以指定某一个字段值来填补
mysql> select a.*,ifnull(b.phone,a.id) from name a left join phone b on a.id=b.id; +------+-----------+----------------------+| id | user | ifnull(b.phone,a.id) |+------+-----------+----------------------+| 1 | xiaoqiang | 1 || 2 | lisi | 110 || 3 | xiaowu | 119 || 4 | laoliu | 4 |+------+-----------+----------------------+4 rows in set (0.00 sec)
当b.phone的值为null时,使用name表中的id字段来填补。但使用ifnull后列名看起来很不友好,可以用as还原
mysql> select a.*,ifnull(b.phone,a.id) as phone from name a left join phone b on a.id=b.id; +------+-----------+-------+| id | user | phone |+------+-----------+-------+| 1 | xiaoqiang | 1 || 2 | lisi | 110 || 3 | xiaowu | 119 || 4 | laoliu | 4 |+------+-----------+-------+4 rows in set (0.00 sec)
0 0
- MySQL ifnull函数判断字段值为null时使用默认值
- MySQL ifnull函数判断字段值为null时使用默认值
- mysql 中 isnull 和 ifnull 判断字段是否为null
- mysql null 值的判断 ifnull函数应用
- mysql null 值的判断 ifnull函数应用
- mysql null 值的判断 ifnull函数应用
- mysql null 值的判断 ifnull函数应用
- mysql null 值的判断 ifnull函数应用
- mysql null 值的判断 ifnull函数应用
- mysql null 值的判断替换, ifnull函数的应用
- MySQL判断字段值为null
- mysql查询字段为空字符串时给默认值 (2、为null时给一默认值)
- Mysql判断字段是否为NULL
- mysql查询时给值为null的设置默认值
- Oracle中判断字段值为NULL的函数
- MySQL 字段值为NULL
- MYSQL IFNULL函数的使用
- MYSQL IFNULL函数的使用
- RCP去掉eclipse默认控制台的视图bar按钮
- String、StringBuilder、StringBuffer、CharSequence 区别
- 字符串链接
- position:absolute详解
- sqlserver导出sql脚本
- MySQL ifnull函数判断字段值为null时使用默认值
- 基于客户IP地址限制访问
- bundle format unrecognized, invalid, or unsuitable Command /usr/bin/codesign failed with exit cod
- Android基于XMPP协议,Smack类库的IM通讯
- 【Express】nodejs+express简单入门篇
- unity obb不用重启的方案
- 使用HTML+css实现京东图片自动轮播效果(自己写的)
- java redis简单测试项目搭建
- solaris 用户连接资源限制