MySQL查詢--對查詢所得的字段判斷並且重新賦值


需求

當父節點id等於0時,父節點的名稱顯示為"一級系統部件"

解決方案

使用case when then

語法

CASE 字段

WHEN 條件1 THEN 值 1

WHEN 條件2  THEN 值 2

   [WHEN ...] 

   [ELSE 值] 

END  別名

實例

當父節點id等於0時,父節點的名稱顯示為"一級系統部件",其他顯示為對應的名稱

SELECT
    vc.id AS id,
    vc.`name` AS `name`,
    vc.parent_id AS parentId,
    CASE vc.parent_id WHEN 0 THEN '一級系統部件' ELSE a.`name` END parentName,
    vc.material_number AS materialNumber,
    vc.structure_type AS structureType,
    sd.`name` AS structureTypeName,
    vc.type AS type,
    vc.sort AS sort,
    vc.line_id AS lineId,
    b.`name` AS lineName,
    vc.`level` AS `level`,
    vc.remark AS remark 
FROM
    ((
            vehicle_component AS vc
            LEFT JOIN sys_dict AS sd ON sd.`code` = vc.structure_type 
            )
        LEFT JOIN vehicle_component AS a ON a.id = vc.parent_id 
    )
    LEFT JOIN line AS b ON b.id = vc.line_id 
WHERE
    vc.`status` = 1 
    AND vc.line_id = 49


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM