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用于重播!这正是我想要的,你救了我的命,上帝保佑你,兄弟,再次感谢你