2012-10-12 17 views
4

我有MySQL和查詢是: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中獲得所需的結果?

回答

8

您可以使用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 
+0

謝謝Kickstart,它的工作.. –

1

可以使用聯合表將存儲標籤的re_type像

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 
1

我想他想在re_type字段上保留ID,並在提取時解碼它們。

可以使用CASE WHEN或ELT()時,MySQL相當於Oracle的解碼(),如解釋here

,但最好的做法是創建一個包含re_type和re_type_description領域的外部表,因此,如果明天你會有新的價值,你不必改變你的所有查詢。

相關問題