MySQL替换查询case when

版权声明:本文为博主原创文章,未经博主允许不得转载。个人博客:www.saoguang.top https://blog.csdn.net/u011580175/article/details/82323048

一、背景

在设计数据库的时候,往往,会将一些状态字段设计成 unsigned Tinyint类型(1字节,无符号范围0~255)。这样设置往往是因为,状态字段的状态描述过于复杂。影响查询效率。但是,前端需要的数据往往是转义过后的。

二、适用情况

例如:
- 数据库状态字段取值(0 未审核 1 已审核 2 审核不通过)
- 前端,需要的是未审核,已审核,审核不通过这样的数据。

所以,这里就可以用到Mysql提供的case when语句

三、实例

  • 字段设计
中文说明 字段名 类型 长度 是否主键 是否外键 是否唯一索引 可否为空 默认值 备注
文件类型 type tinyint 1 N (0:csvHeader,1:csvHeaderData,2:csvConn)

- 下面这样的一个字段,我们要查询出来之后,将按照下面的对于关系转化
0:csvHeader
1:csvHeaderData
2:csvConn

  • 查询语句如下
SELECT type,(case file.type when 0 then 'csvHeader' when 1 then 'csvHeaderData' when 2 then 'csvConn' end)type FROM `file`
  • 查询结果:
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/u011580175/article/details/82323048