MySQL – 如何使用concat和group_concat将行值显示为列名
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL – 如何使用concat和group_concat将行值显示为列名,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含914字,纯文字阅读大概需要2分钟。
内容图文
![MySQL – 如何使用concat和group_concat将行值显示为列名](/upload/InfoBanner/zyjiaocheng/890/c90af903dbc24b7c89f5a0b54b4c8949.jpg)
表格1:
id | typeid | available|
0 | 1 | 12 |
0 | 2 | 44 |
表2:
typeid | typename |
1 | CL |
2 | ML |
我有一个使用concat和group_concat的查询:
select id,concat(group_concat(typename,available)) as types from table1
join table2 on table2.typeid=table1.typeid
我的结果如下:
id | types |
0 | CL12,ML44 |
但我想像这样显示它:
id | CL | ML |
0 | 12 | 44 |
有没有办法将group_concat结果拆分为列头?
我想从table2动态获取数据.有些用户可以向table2添加数据.所以硬编码typename是不可能的.
解决方法:
您应该使用表格旋转. MySQL中没有PIVOT命令,因此您可以使用此查询 –
SELECT
t1.id,
MAX(IF(t2.typename = 'CL', t1.available, NULL)) AS CL,
MAX(IF(t2.typename = 'ML', t1.available, NULL)) AS ML
FROM table1 t1
JOIN table2 t2
ON t1.typeid = t2.typeid
GROUP BY
t1.id;
MySQL pivot tables (transform rows to columns).
如果可能有多个可用值,请使用GROUP_CONCAT函数而不是MAX.
内容总结
以上是互联网集市为您收集整理的MySQL – 如何使用concat和group_concat将行值显示为列名全部内容,希望文章能够帮你解决MySQL – 如何使用concat和group_concat将行值显示为列名所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。