如果MySQL表看起来像这样透视表的MySQL
什么,我试图做的是数据透视表看起来是这样的:
Jenny Ashley Meera Jane
Samantha Christeen Priya Julia
NULL Ketty NULL Maria
每列基于其职业
如果MySQL表看起来像这样透视表的MySQL
什么,我试图做的是数据透视表看起来是这样的:
Jenny Ashley Meera Jane
Samantha Christeen Priya Julia
NULL Ketty NULL Maria
每列基于其职业
此代码将做你想要的东西:
set @sql = (
select group_concat(distinct
concat(
"(case when `Occupation`='", Occupation, "' then `Name` end) as `", `Occupation`, "`"
)
)
from t
);
set @sql = concat("select ", @sql, " from t ");
prepare stmt from @sql;
execute stmt;
我达到了这样的答案,但我无法摆脱空值 –
'IFNULL(expression,0)' –
有很多实现这一这里描述的方法:在那里做它的动态的方式包括在使用GROUP_CONCAT与CONCAT由阿布舍克古普塔答案MySQL pivot table
。它并不快,但它是动态的。
它的要点是,如果你想要一个动态的解决方案,那么你首先必须做一个查询来找出你的数据中有什么列。然后,根据该信息创建一个新的查询。
如果你想要一个动态的解决方案也是快速的,那么你需要将第一个查询拉入你的编程语言(如php或任何你正在使用的),并使用编程语言来创建一个快速的查询。
相关主题:[MySQL pivot row into dynamic of columns](http://stackoverflow.com/q/12004603/2298301) –
这个数据看起来很可疑地类似于这个问题中描述的编码挑战中的数据几周前:https://stackoverflow.com/questions/46210995/所以我不知道你是否也试图做一个编码挑战。编码挑战的关键在于你解决它,而不是让Stack Overflow的人为你做! –