mysql - SQL 将多个单元格中的数据重新排列为一个
问题描述
我正在尝试创建一个视图,该视图按特定列(比如说品牌)和每个品牌的第二列(比如说颜色)的所有实例进行分组,分组在一个单元格中并用分号分隔。我很难用语言表达,但这就是我要找的:
从这张表
|BRAND |COLOR |
|-------|-------|
|TOYOTA |BLUE |
|NISSAN |BLUE |
|FORD |BLUE |
|NISSAN |RED |
|NISSAN |GREEN |
|FORD |RED |
-----------------
到这个观点
|BRAND |COLOR |
|-------|---------------|
|TOYOTA |BLUE |
|NISSAN |BLUE;RED;GREEN |
|FORD |BLUE;RED |
|-------|---------------|
我希望我能提供代码,但我还没有想出任何想法。
解决方案
您可以使用group_concat
. 这是演示。
select
brand,
group_concat(color order by color SEPARATOR ';' ) as color
from myTable
group by
brand
输出:
| brand | color |
| ------ | -------------- |
| FORD | BLUE;RED |
| NISSAN | BLUE;GREEN;RED |
| TOYOTA | BLUE |
推荐阅读
- java - 致命崩溃后我们如何以编程方式重新启动android应用程序
- regex - 正则表达式将 IBAN 转换为本地格式
- amazon-web-services - cdk synth --no-staging 生成无效的 template.yaml 文件导致无法解析模板
- button - 锚文本和按钮的问题在 OpenCart 2.3.0.2 中阅读更多内容
- html - 在开普勒 gl 点图上默认显示图例
- python - 从 python 调用 docker run 时`write /dev/stdout: broken pipe`
- python - 在 Python Django 的单元测试中使用 Google OAuth2 进行身份验证
- flutter - 如何在颤振介绍屏幕中手动更改指标
- javascript - 使用 Html2Canvas 提高图像质量
- c# - 射击多个目标的子弹脚本