如何编写一个mysql视图,该视图使用表中数据的列名

时间:2011-12-29 14:16:39

标签: mysql

我有一个“参数”表,在其数据中包含一个列名(“col1”),它是我“mydata”表中的一列。

parameters
==========
which_column    
-----------
"col1"


mydata
======
col1    col2    col3
--------------------
6       7       42
1       2       3
5       9       11  

我需要编写一个mysql视图,根据mydata中指定的列选择“mydata”

编辑:

我想做类似的事情:

create view myview as
    select mydata.(select which_column from parameters) from mydata

我有24个不同的列名,因此我不想手动测试每个案例。

2 个答案:

答案 0 :(得分:1)

如果表参数只包含一个带有列名的行,则该函数应该起作用:

SELECT which_column FROM parameters INTO @param;
SET @qry = CONCAT('SELECT ', @param, ' FROM mydata');
PREPARE stmt1 FROM @qry;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

答案 1 :(得分:0)

SELECT 
  IF(@parameter='col1',col1,IF(@parameter='col2',col2,IF(@parameter='col3',col3,null))) AS mycol
FROM
  tablename;

这是q& d,但它确实有效。