MySQL的IF(exp1, exp2, exp3)、IFNULL(exp1, exp2)函数的用法

本章主要是讲解一下mysql的常用方法if()和ifnull()的使用

1、if(exp1, exp2, exp3)

如果表达式exp1成立,则返回的结果是表达式exp2,否则返回的是表达式exp3

案例:现在有一个星印类型表xingyin_type

MySQL的IF(exp1, exp2, exp3)、IFNULL(exp1, exp2)函数的用法_第1张图片

 通过这个表来介绍一下这个函数的使用

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

得到的查询结果:

MySQL的IF(exp1, exp2, exp3)、IFNULL(exp1, exp2)函数的用法_第2张图片

 

你可能感兴趣的:(mysql,数据库)