相关文章推荐
飞翔的鼠标垫  ·  Yarn服务-阿里云·  3 周前    · 
想出家的海龟  ·  MyBatis一对多查询-阿里云·  2 周前    · 
英姿勃勃的冲锋衣  ·  用Python的Plotly画出炫酷的数据可 ...·  1 周前    · 
爱搭讪的麻辣香锅  ·  Oracle 代码异常查询(七)-阿里云开发者社区·  1 周前    · 
旅途中的硬盘  ·  亞馬遜中國放棄電商了?其海外購業務或被網易考 ...·  2 月前    · 
千杯不醉的电脑桌  ·  都市浪子漫画评价,都市浪子古风恋爱校园恐怖漫 ...·  2 年前    · 
无邪的蚂蚁  ·  高创伺服电机驱动对比施耐德电机驱动,哪个比较 ...·  2 年前    · 
谦和的电池  ·  仙女湖之墨仙_百度百科·  2 年前    · 
ibaobao  ·  加油!妈妈(2022年刘一志执导的电视剧)_ ...·  2 年前    · 
Code  ›  MySQL CASE表达式简单使用-阿里云开发者社区
mysql mysql执行计划 mysql集群 阿里
https://developer.aliyun.com/article/1111807
潇洒的牙膏
1 年前
产品 解决方案 文档与社区 权益中心 定价 云市场 合作伙伴 支持与服务 了解阿里云
备案 控制台 登录/注册
开发者社区
首页
探索云世界
新手上云 云上应用构建 云上数据管理 云上探索人工智能
云计算 弹性计算 无影 存储 网络 倚天
云原生 容器 serverless 中间件 微服务 可观测 消息队列
数据库 关系型数据库 NoSQL数据库 数据仓库 数据管理工具 PolarDB开源 向量数据库

热门

Modelscope模型即服务 弹性计算 云原生 数据库 物联网 云效DevOps 龙蜥操作系统 平头哥 钉钉开放平台
大数据 大数据计算 实时数仓Hologres 实时计算Flink E-MapReduce DataWorks Elasticsearch 机器学习平台PAI 智能搜索推荐
人工智能 机器学习平台PAI 视觉智能开放平台 智能语音交互 自然语言处理 多模态模型 pythonsdk 通用模型
开发与运维 云效DevOps 钉钉宜搭 支持服务 镜像站 码上公益
探索云世界
云上快速入门,热门云上应用快速查找
了解更多
问产品
动手实践
考认证
TIANCHI大赛
活动广场
活动广场
丰富的线上&线下活动,深入探索云世界
任务中心
做任务,得社区积分和周边
高校计划
让每位学生受益于普惠算力
训练营
资深技术专家手把手带教
话题
畅聊无限,分享你的技术见解
开发者评测
最真实的开发者用云体验
乘风者计划
让创作激发创新
阿里云MVP
遇见技术追梦人
直播
技术交流,直击现场
下载
下载
海量开发者使用工具、手册,免费下载
镜像站
极速、全面、稳定、安全的开源镜像
技术资料
开发手册、白皮书、案例集等实战精华
插件
为开发者定制的Chrome浏览器插件
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

MySQL CASE 表达式是控制流函数的一部分,它使我们能够将if-else 或 if-then-else逻辑写入查询。此表达式可用于任何使用有效程序或查询的地方,例如 SELECT、WHERE、ORDER BY 子句等。


CASE 表达式验证各种条件并在第一个条件为true时返回结果。一旦满足条件,它就会停止遍历并给出输出。如果它找不到任何条件为真,则执行else 块。当没有找到 else 块时,它返回一个NULL值。MySQL CASE 语句的主要目标是处理 SELECT 子句中的多个 IF 语句。


我们可以通过两种方式使用 CASE 语句,具体如下:


一、简单的CASE语句

第一种方法是取一个值并将其与给定的语句匹配,如下所示。


CASE value   





    
    WHEN [compare_value] THEN result   
    [WHEN [compare_value] THEN result ...]   
    [ELSE result]   

当第一个compare_value比较为true时,它返回结果。否则,它将返回 else 子句。

示例

# 根据类别id,确定对应的主营类型
select
    CASE category_id
      WHEN 35 THEN '生鲜果蔬'
      WHEN 36 THEN '休闲零食'
      WHEN 37 THEN '蛋糕烘焙'
      WHEN 38 THEN '茶饮酒水'
      WHEN 39 THEN '滋补保健'
      WHEN 40 THEN '粮油米面'
      WHEN 41 THEN '综合食品'
      WHEN 26 THEN '汽车养护'
      WHEN 31 THEN '充值缴费'
      ELSE ' '
  ) as ’ 商 品 类 目 ‘
  shopxx.xx_platform;

二、检索CASE语句

第二种方法是在WHEN子句中考虑一个search_condition,如果找到,则在相应的 THEN 子句中返回结果。否则,它将返回 else 子句。如果没有指定 else 子句,它将返回一个 NULL 值。

CASE   
    WHEN [condition] THEN result   
    [WHEN [condition] THEN result ...]   
    [ELSE result]   

示例

# 根据商品类型不同,描述信息存放的字段也不一样
SELECT id,id,goods,organize supplier_id,productType,is_list,is_marketable,
      WHEN productType = 9 OR productType = 11 THEN detail_image #虚拟商品
      ELSE product_desc # 实物商品
  ) spu_describe
  xx_product
WHERE
  pfid = 20000
  AND del_state IS NULL;# 删除状态字段为NULL代表未删除


三、MySQL CASE表达式的返回类型

CASE 表达式根据使用它的上下文返回结果。例如:

  • 如果在字符串上下文中使用,则返回字符串结果。
  • 如果在数字上下文中使用,则返回整数、浮点数、十进制值。


四、 MySQL CASE表达式 版本支持

CASE语句可以支持以下 MySQL版本 :

  • MySQL 8.0
  • MySQL 5.7
  • MySQL 5.6
  • MySQL 5.5
  • MySQL 5.1
  • MySQL 5.0
  • MySQL 4.1
  • MySQL 4.0
  • MySQL 3.23.3


最后


虽然MySQL CASE语法可以帮我们方便的处理一些类似switch...case 这样的逻辑,但是在项目中,对于一些需要经常操作数据库的操作不建议这样做。复杂语法会消耗数据库的性能,C端接口一定要用缓存


最后推荐大家几款优秀的SQL格式化工具:


http://www.toolscat.com/format/sql


http://www.wetools.com/sql-formatter


全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
使用CloudLens采集RDS日志并进行审计分析 AnalyticDB MySQL游戏行业数据分析实践 函数计算X RDS PostgreSQL,基于LLM大语言模型构建AI知识库 AnalyticDB MySQL海量数据秒级分析体验 5分钟上手Flink MySQL连接器 体验PolarDB MySQL多主集群
 
推荐文章
飞翔的鼠标垫  ·  Yarn服务-阿里云
3 周前
想出家的海龟  ·  MyBatis一对多查询-阿里云
2 周前
英姿勃勃的冲锋衣  ·  用Python的Plotly画出炫酷的数据可视化(含各类图介绍)-阿里云开发者社区
1 周前
爱搭讪的麻辣香锅  ·  Oracle 代码异常查询(七)-阿里云开发者社区
1 周前
旅途中的硬盘  ·  亞馬遜中國放棄電商了?其海外購業務或被網易考拉合併 – 永續智慧電子商務研究中心
2 月前
千杯不醉的电脑桌  ·  都市浪子漫画评价,都市浪子古风恋爱校园恐怖漫画 - 快看漫画
2 年前
无邪的蚂蚁  ·  高创伺服电机驱动对比施耐德电机驱动,哪个比较好? - 知乎
2 年前
谦和的电池  ·  仙女湖之墨仙_百度百科
2 年前
ibaobao  ·  加油!妈妈(2022年刘一志执导的电视剧)_百度百科
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号