Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在不指定字段的情况下将行动态转换为列_Mysql - Fatal编程技术网

Mysql 在不指定字段的情况下将行动态转换为列

Mysql 在不指定字段的情况下将行动态转换为列,mysql,Mysql,如何在不指定行名称的情况下使用大小写动态转换键值表? 例如,我将此表命名为key\u value: id key value 1 name john 2 fname akbar 3 jobs Software enginer . . . . . . . . . . . . . . . n n n 我想将所有这些行动态转换为列,而不指定键名,如: name f

如何在不指定行名称的情况下使用大小写动态转换键值表?
例如,我将此表命名为
key\u value

id     key     value
1     name     john
2     fname    akbar
3     jobs     Software enginer
.    .    .
.    .    .
.    .    .
.    .    .
.    .    .
n    n    n
我想将所有这些行动态转换为列,而不指定键名,如:

name   fname   jobs............................n
john    akbar   sofware engineer...........n
我使用了:

Max(Case WHEN key='name' THEN value END) AS name
在这个查询中,我知道我的钥匙。
如果我不知道我的领域,我不知道我有多少领域


我想在不指定字段的情况下动态转换所有这些内容。

这也是我以前的问题

我修改了它来回答你的问题,我希望它对我有帮助,就像它对我一样

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(IF(a.xvalue = ''',
      xvalue,
      ''', a.xvalue, NULL)) AS ',
      xkey
    )
  ) INTO @sql
FROM key_value;


SET @sql = CONCAT('SELECT ', @sql, ' 
                   FROM key_value a
                   LEFT JOIN key_value AS b
                    ON a.id=b.id');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

通过“转换”,您的意思是要将行值显示为列标题吗?是的,mr Ruben key作为标题,value作为其attributeTX用于重播!这正是我想要的,你救了我的命,上帝保佑你,兄弟,再次感谢你