You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dreamweaver动态表的SQL语句中添加ELSE IF分支处理多Type_id?

处理MySQL多分支条件判断的方案

嗨,我来帮你搞定这个问题~你之前用的IF()函数只能处理二元分支(要么满足条件返回A,要么不满足返回B),如果要处理Type_id=2及更多其他值的多分支场景,更推荐用MySQL的CASE WHEN语句,它结构清晰、可读性更强,完全支持多条件分支。

用CASE WHEN实现多分支判断

直接看修改后的代码,你可以根据实际需求添加更多WHEN分支:

SELECT 
  diagnose.Service_id,
  CASE 
    WHEN diagnose.Type_id = '1' THEN 'บันทึกระบบกระดูกและกล้ามเนื้อ'
    WHEN diagnose.Type_id = '2' THEN '这里替换成Type_id=2对应的显示文本'
    -- 可以继续添加更多WHEN分支,比如处理Type_id=3、4的情况
    -- WHEN diagnose.Type_id = '3' THEN '对应的文本内容'
    ELSE 'บันทึกแล้ว' -- 所有未匹配到上面条件的Type_id(比如5、6等)都会走这个默认分支
  END AS Diagnose 
FROM diagnose;

关于CASE WHEN的说明

  • 每个WHEN后面跟着一个判断条件,匹配成功就返回对应的THEN文本
  • 一旦某个WHEN条件匹配成功,就会跳过后面的所有分支
  • ELSE是可选的,但如果没有它,未匹配到条件的行会返回NULL,所以建议加上作为默认情况

(可选)用嵌套IF()实现

如果你坚持想用IF(),可以通过嵌套的方式实现多分支,但嵌套层数多了会让代码变得难以维护,示例如下:

SELECT 
  diagnose.Service_id,
  IF(diagnose.Type_id = '1', 
     'บันทึกระบบกระดูกและกล้ามเนื้อ',
     IF(diagnose.Type_id = '2', 
        'Type_id=2对应的文本',
        'บันทึกแล้ว' -- 默认情况
       )
    ) AS Diagnose 
FROM diagnose;

总的来说,CASE WHEN是处理多分支条件判断的最优选择,代码更易读也更容易扩展~

内容的提问来源于stack exchange,提问作者Joshua John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:40:43