2018年04月6日网站服务器迁移完成……

mysql case when 用法简记分享

mysql 苏 demo 101℃

在程序开发过程中,经常会有一些业务上的需要导出excel数据。

这点不可不说,excel不论什么时候,业务都很青睐。

示例:突然接到业务需求,需要导出一些数据进行核对,格式如下:

这时通过数据库查询,状态的切分显示就需要用到case when 用法了。

示例用法:

SELECT
userweixin.nickname AS 微信昵称,
apply.name AS 联系人,
apply.tel AS 手机号,
site.site_name AS 子站,
apply.address AS 详细地址,
apply.bdid AS 推荐人ID,
FROM_UNIXTIME(apply.dateline) AS 申请时间 ,
(CASE
apply.status
WHEN 0
THEN ‘未沟通’
WHEN 1
THEN ‘已沟通’
END) AS 沟通状态,
(CASE
apply.open_status
WHEN 0
THEN ‘未开通’
WHEN 1
THEN ‘已开通’
WHEN 2
THEN ‘已拒绝’
END) AS 开通状态
FROM
apply AS apply
LEFT JOIN userweixin AS userweixin
ON apply.user_id = userweixin.userid
LEFT JOIN site AS site
ON site.site_id = apply.site_id
WHERE apply.deleted = ‘0’
AND apply.site_id IN (
‘-1’,
‘10311’
)
ORDER BY apply.apply_id DESC
LIMIT 0, 20 ;

通过case when 可以直接判断数据表里的status状态,并显示对应的文字描述。

比较标准的case when用法示例为:

case

when a.status = 1 and a.end_time > UNIX_TIMESTAMP() then 生效中

when a.status = 2 then 已失效

else ‘N/A’

end status_alias

需要注意的是:

case when 用在查询语句的时候,新的别名可以用来排序,但是不能用在where条件当中。

打赏

转载请注明:苏demo的别样人生 » mysql case when 用法简记分享

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (0)or分享 (0)