slipperySoap 2022-05-31 16:24 采纳率: 88.9%
浏览 36
已结题

MySQL选择语句如何支持单条件多语句块语法?

问题遇到的现象和发生背景

最近工作遇到一个问题,在MySQL中,写纯SQL的时候用到了用户变量@var,也涉及了多条件选择,我这里用了case函数语法
语法1.

case 变量 或 表达式 或 字段
when 常量1 then1
when 常量2 then2
...
【else 值n】
end

语法2.

/*
case 
when 条件1 then1 (如果是语句,则需要加分号; 后期会用到case语句)
when 条件2 then2
...
【else 值n】
end 
*/

发现:每个条件when之后直接跟结果值
没有像Java中if-else if-else选择条件语法大括号中的语句块

if (xxxboolean) {
  xxxstatement1;
  xxxstatement2;
  xxxstatement3;
  ....
  xxxstatementn;
}

这使得我要将赋值语句,去内嵌写条件中结果值中,这使得可读性非常差
并且这样下来,最多也只有两个内嵌的赋值语句,如果超过两个,还处理不了

我想要达到的结果

防范于未然,和提升MySQL代码的可操作性,MySQL中有没有支持选择流程控制的语句块语法呢?(就像Java选择流程语法中if和else if和else后的跟的大括号一样)

  • 写回答

1条回答 默认 最新

  • 於黾 2022-05-31 16:37
    关注

    sql里可以使用if,else
    case when then其实类似java里的三元运算符,只能写表达式,不可以写复杂语法
    想写复杂语法还得用if,else

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 修改了问题 5月31日
  • 修改了问题 5月31日
  • 展开全部

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助