场景:我们在数据库中经常以tinyint存储状态值,使用sql查询的时候不希望输出的是数字而是对应的字符串
- IF函数
IF(‘判断条件’ , ’成功后的结果‘ , ‘失败后的结果’)
SELECT
IF(c.education_background=1,'高中以下','高中以上') education
from candidate c
但是状态值很多怎么办,那我们可以使用case函数
2. CASE函数
case a
when ’b’ then ’c‘
如果判断的字段a的值是b就输出c
SElECT
CASE c.education_background
WHEN '0' THEN ''
WHEN '1' THEN '高中以下'
WHEN '2' THEN '中专/高中'
WHEN '3' THEN '大专'
WHEN '4' THEN '大学本科'
WHEN '5' THEN '硕士研究生'
ELSE '博士及以上'
END as education
FROM candidate c