Mysql查询语句根据不同的查询字段结果进行不同的显示

时间:2025-03-21 09:15:08

场景:我们在数据库中经常以tinyint存储状态值,使用sql查询的时候不希望输出的是数字而是对应的字符串

  1. 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