【问题标题】:How can i group field using mysql?如何使用 mysql 对字段进行分组?
【发布时间】:2021-08-28 22:29:23
【问题描述】:

我在使用 mysql 创建查询时遇到问题,我有以下行:

我希望结果是这样的:

[
  {
    "value": "VERTICAL_DESIGN_SOFT_MATERIAL",
    "images": [
      {
        "color": "white",
        "image": "http://localhost/white.png"
      },
      {
        "color": "black",
        "image": "http://localhost/black.png"
      },
      {
        "color": "gray",
        "image": "http://localhost/gray.png"
      }
    ]
  },
  {
    "value": "VERTICAL_DESIGN_HARD_MATERIAL",
    "images": [
      {
        "color": "blanco",
        "image": "http://localhost/blanco.png"
      },
      {
        "color": "black",
        "image": "http://localhost/black.png"
      },
      {
        "color": "gray",
        "image": "http://localhost/gray.png"
      },
      {
        "color": "azul",
        "image": "http://localhost/o_azul.png"
      }
    ]
  }
]

我将其显示为 json,因为我认为这描述了我需要的内容,我想在字段中对颜色和图像进行分组以访问该行,我尝试使用 group by 但我无法得到它,

我试过这样的:

SELECT v_ebt,colors,image FROM `am_mm_baggage_select_2` group by colors, image

你能帮帮我吗?

问候 马里奥

【问题讨论】:

  • 数据显示问题一般在应用代码中解决
  • 请显示您尝试的 sql ...
  • 你的样本数据和想要的结果真的没有任何关系,所以不清楚你想做什么。 作为文本表 的示例数据和所需结果会非常有帮助。另外,要清楚你想要的格式。您是否专门寻找 JSON 结果集?
  • @Dri372 我用这个:SELECT v_ebt,colors,image FROM am_mm_baggage_select_2 group by colours, image
  • 嗨@GordonLinoff 我不是在寻找 json 结果,它只是为了解释我想如何在字段或 var 中获取这些字段附加颜色和图像

标签: mysql sql group-by


【解决方案1】:

如果您只想组合颜色和图像字段:

SELECT v_ebt, CONCAT("color: ", colors, "; image: ", image) AS Data FROM table;

要在一列中垂直获取所有数据并仍允许按公共标识符排序,请考虑:

SELECT 1 AS Srt, v_ebt AS Grp, v_ebt AS Data FROM docs
UNION SELECT 2, v_ebt, CONCAT("color: ", colors, ", image: ", image) 
     FROM docs
ORDER BY Grp, Srt;

如果您想将多行数据连接成一个字符串,请探索 GROUP_CONCAT 函数。

SELECT v_ebt, GROUP_CONCAT(CONCAT("color: ", colors, ", image: ", image, Char(10)+Char(13))
                           ORDER BY CONCAT("color: ", colors, ", image: ", image, Char(10)+Char(13))) AS list
FROM table
GROUP BY v_ebt;

无法使用 Char(10) + Char(13) 或与 + 连接,我没有要测试的 MySQL,但希望这能让你开始。

然后,可以选择创建一个按 v_ebt 数据排序和分组的报告,而不是尝试在查询中执行此操作。这在 Access 中会很简单,我希望 MySQL 报告工具和 Crystal Reports 可以做到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多