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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章