版权声明:本文为博主原创文章,未经博主允许不得转载。个人博客: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`
- 查询结果: