2013-01-06 47 views
0

我有以下表結構(表名是問題)需要一個SQL查詢來列值映射到列名

c1 c2 c3 Selection 

X Y Z 2 

A B C 3 

這裏C1,C2,C3和選擇是列名。我想根據列選擇的值檢索c1或c2或c3的值。例如,如果選擇值是2,那麼我需要c2列的相應值,即Y. 如果選擇值是3,那麼它應該在這裏選擇c3列的值,即C。

請幫我在這裏選擇Sql查詢。我嘗試過自己,但無法找到正確的解決方案。

在此先感謝

+0

http://dev.mysql.com/doc /refman/5.5/en/control-flow-functions.html#operator_case – Joddy

+0

請參閱[變量中的mysql字段名稱](http://stackoverflow.com/questions/4428761/mys ql-field-name-from-variable) –

回答

2
SELECT CASE Selection 
      WHEN 1 THEN c1 
      WHEN 2 THEN c2 
      ELSE c3 
     END val 
FROM tableName 
+0

感謝mate..this是我想要的......我真的很感謝你對問題的快速理解和快速回復.... :) – Sonu

+1

+1 from me ..... –

+0

不客氣':D' –

0

這是非常簡單的只是運行一個簡單的查詢,它將返回所有列,那麼你應該使用相應的列。

SELECT * FROM mytable WHERE selection = 'yourvalue' 
2

你必須使用CASE的IF的

select if(selection=2 ,b,if(selection=3,c,a)) from Table1 ; 

在這裏看到,例如... link