mysql case用法 在sql 进行分支处理

需求:

两张表,线上课程表 course 表和线下表 classes 表。还有一张订单表。订单表中有一个字段platform 表示课程类型:0 表示线下, 1表示线上。需要关联查询相关订单信息。

问题: 如果分开查询,会导致排序的话会很麻烦,所以还是希望在sql 语句中处理。

解决:使用 sql 中的 case 来解决。

SELECT 
    a.id as orderId,
    case a.platform when 0 then b.name when 1 then c.name end as name,
    case a.platform when 0 then b.title when 1 then null end as title 
FROM
    order AS a
        LEFT JOIN
    classes AS b ON a.cid = b.id
        LEFT JOIN
    course AS c ON a.cid = c.id
    order by a.created_at desc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值