case when的使用方法
Case具有两种格式。简单Case函数和Case搜索函数。
第一种 格式 : 简单Case函数 :
case 列名
when 条件值1 then 选项1
when 条件值2 then 选项2.......
else 默认值 end
第二种 格式 :Case搜索函数
case
when 列名= 条件值1 then 选项1
when 列名=条件值2 then 选项2.......
else 默认值 end
case when 其实相当于switch用法
结尾一定要加end。
case when常用的使用场景
1.比方说这种又有筛选又有搜索的地方,需要动态修改where来查询条件
/*
* $keyWords 传过来的搜索关键字
* $status 传过来的筛选条件
* userName ,status 表里的字段
* case when $status then status=$status 判断 $status 值为true,走then后面的条件,后面的条件都不执行
* else status=status 上面的条件 不成立,执行这个条件。 status=status 等同于查询全部 或者写成 1=1
*/
$sql="select * from 表名 where userName like '%$keyWords%' and
case when $status then status=$status
else status=status
end"
2.比方说在设计数据库时,习惯把用户性别用int存储('0’不男不女, '1’是女,'2’是男)
$sql="select
case sex
when 0 then '不男不女'
when 1 then '女'
else '男' end
from 表名"