在写mysql查询语句的时候如果需要根据查询结果判断来返回值的时候可以使用高级函数CASE ....when
MySQL 的 case when 分为简单函数和搜索函数两种:
- 简单函数
CASE expression WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END
- 搜索函数
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END
1.简单函数
CASE expression WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END
CASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2,当全部不成立则返回else后面的 result,而当有一个成立之后,后面的就不执行了。
案例:我需要根据查询的姓名为‘zhangsan’给他一个true状态,其他的为false
SELECT *,CASE tb.username WHEN ('zhangsan') THEN TRUE ELSE FALSE END as state from tb_user tb
执行结果:
2.搜索函数
我想根据用户的积分来判断用户的级别,使用搜索函数的写法