通过列中存储的列名从多个列中进行选择

时间:2016-03-09 07:05:27

标签: mysql

我想从像这样的表中选择

|id|col_name|col1|col2|col3|col4|col5|...|col100|
| 1|col1    | 142| 241| 333| 417| 713|...|   125|
| 2|col5    | 927|  72| 403| 104| 136|...|   739|
| 3|col100  | 358| 842| 150| 125| 174|...|   103|

从col_name字段指定的列中选择。像

这样的东西
SELECT id,valueof(col_name) val FROM table1

返回

|id|val|
| 1|142|
| 2|136|
| 3|103|

1 个答案:

答案 0 :(得分:0)

如果您正在使用PHP(或相应地修改逻辑),您可以执行类似 -

的操作
$colNames = array(col1, col5, col100); // or SELECT col_name FROM 
                                          table_name and store it in $colNames
foreach ($colNames as $val) {
  $query = "SELECT $val FROM table_name WHERE col_name={$val}";
  //execute this and store its result one-by-one into another array.
}

因为我不确定是否可以通过单一查询来完成。