MySQL将结果值替换为另一个值
我有MySQL,查询是:MySQL将结果值替换为另一个值,mysql,sql,case-when,ansi-sql,Mysql,Sql,Case When,Ansi Sql,我有MySQL,查询是: select name,re_type from myTable 我要替换以下类型的所有值: 1 = student 2 = teacher 因此,结果应该是: name re_type --------------- Ron Student Mac Teacher 不像: name re_type --------------- Ron 1 Mac 2 可以这样进行查询以便在MySQL中获得所需的结果吗?您可以使用
select name,re_type from myTable
我要替换以下类型的所有值:
1 = student
2 = teacher
因此,结果应该是:
name re_type
---------------
Ron Student
Mac Teacher
不像:
name re_type
---------------
Ron 1
Mac 2
可以这样进行查询以便在MySQL中获得所需的结果吗?您可以使用CASE语句
SELECT name, CASE WHEN re_type = 1 THEN 'Student' WHEN re_type = 2 THEN 'Teacher' ELSE 'Donno' END AS re_type_text
FROM myTable
您可以使用一个关节表来存储re_类型的标签,如
re_type_id re_type_label
1 student
2 teacher
并通过以下方式更改您的查询:
select t.name,l.re_type_label
from myTable t
inner join labelsTable l
on l.re_type_id = t.re_type
我认为他想把ID保留在re_类型字段上,并在提取时对其进行解码 您可以使用CASE WHEN或ELT(),MySql相当于Oracle的Decode(),如所述 ,但最佳做法是创建一个包含re_type和re_type_description字段的外部表,这样,如果明天有新值,就不必更改所有查询