背景:
开发过程中遇到取数据为空值,而后需要对该空字段进行算数运算,于是在后台进行了判断空值,并为空值赋值为0。最后被批会影响系统效率,于是决定在sql中进行处理。
解决方法:
使用mysql数据库自带的IFNULL(expr1,expr2)
函数来处理该问题
IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。
IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。
具体代码如下:
eg:
IFNULL(
(
SELECT
r.reimbursement
FROM
`b_reimburse_info` r
WHERE
r.user_id = u.`user_id`
AND DATE_FORMAT(r.year_, '%Y') = t.year_
),0
)
网友评论