本章主要是讲解一下mysql的常用方法if()和ifnull()的使用
1、if(exp1, exp2, exp3)
如果表达式exp1成立,则返回的结果是表达式exp2,否则返回的是表达式exp3
案例:现在有一个星印类型表xingyin_type
通过这个表来介绍一下这个函数的使用
select *, IF(parent_id is null, "一级分类", "二级分类") as 分类等级 from xingyin_type;
以上查询用于根据parent_id是否为null来判定是一级还是二级分类
- parent_id为null表明是一级分类
- parent_id不为null表明是二级分类
2、IFNULL(exp1, exp2)
IFNULL()函数的作用是判断表达式exp1的值是否为null,如果是则返回exp2
以下查询结果为0
select IFNULL(null, 0) from dual
其实IFNULL()函数多用于排序,即null值是排前面还是后面,那么有人就会想到nulls first和nulls last,其实这是Oracle的语法,mysql需要自己实现
还是使用上面的xingyin_type表来介绍IFNULL()方法的使用
以上语句的效果等同于Oracle数据库的order by parent_id nulls last,也就是把null值排到最后面
select * from xingyin_type order by IFNULL(parent_id, 0) desc
得到的查询结果: