c++ - 如何减少JSON对象?

标签 c++ sql json phpmyadmin

我有一个从数据库中的SQL查询创建的JSON文件。我试图将同一行“car_id”的多行减少为一行。
有一个我的JSON文件的示例,其中一个行包含多行:

[{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"1","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"2","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"3","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"4","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"5","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"6","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"}]

我在Google的StackOverflow中进行了搜索,或者我不了解如何将这个文件简化为这个文件。
{"car_id":"1","sca_multiverseid":"430690","car_convertedmanacost":"2","car_coloridentity":"W","ccal_capacity":null,"clel_legality":"1,2,3,4,5,6","csul_supertype":null,"ctyl_type":"7","cstl_subtype":null,"set_block":"2","car_layout":"7","car_power":"0","car_toughness":"0"},

在这里,只有一个不同的字段可以合并(clel_legality),但是可以有几个具有不同值的字段(例如(car_coloridentity,ccal_capacity,csul_supertype ...)

如果我弄错了,我对我的英语感到抱歉。先感谢您。

编辑:
有我的SQL查询:
SELECT car_id, sca_multiverseid, car_convertedmanacost, car_coloridentity, ccal_capacity, clel_legality, csul_supertype, ctyl_type, cstl_subtype, set_block, car_layout, car_power, car_toughness
FROM mag_card A LEFT JOIN mag_setcard B ON A.car_id = B.sca_card
    LEFT JOIN mag_cardcapacityli C ON A.car_id=C.ccal_card
    LEFT JOIN mag_cardlegalityli D ON A.car_id=D.clel_card
    LEFT JOIN mag_cardsupertypeli E ON A.car_id=E.csul_card
    LEFT JOIN mag_cardtypeli F ON A.car_id=F.ctyl_card
    LEFT JOIN mag_cardsubtypeli G ON A.car_id=G.cstl_card
    LEFT JOIN mag_set H ON B.sca_set=H.set_id

最佳答案

感谢Caleb McNevin:

SELECT car_id, sca_multiverseid, car_convertedmanacost, GROUP_CONCAT(DISTINCT car_coloridentity), GROUP_CONCAT(DISTINCT ccal_capacity), GROUP_CONCAT(DISTINCT clel_legality), GROUP_CONCAT(DISTINCT csul_supertype),GROUP_CONCAT(DISTINCT ctyl_type), GROUP_CONCAT(DISTINCT cstl_subtype), set_block, car_layout, car_power, car_toughness
FROM mag_card A LEFT JOIN mag_setcard B ON A.car_id = B.sca_card
                LEFT JOIN mag_cardcapacityli C ON A.car_id=C.ccal_card
                LEFT JOIN mag_cardlegalityli D ON A.car_id=D.clel_card
                LEFT JOIN mag_cardsupertypeli E ON A.car_id=E.csul_card
                LEFT JOIN mag_cardtypeli F ON A.car_id=F.ctyl_card
                LEFT JOIN mag_cardsubtypeli G ON A.car_id=G.cstl_card
                LEFT JOIN mag_set H ON B.sca_set=H.set_id
GROUP BY car_id

请求末尾的命令GROUP_CONCAT(DISTINCT xxx)组合了a和GROUP_BY(primary_key)了!

关于c++ - 如何减少JSON对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60547355/

相关文章:

c++ - 如何将多个集成订单整合到我的Integrator类中?

SQL 服务器 : how do I get SQL to recognize ö and ß correctly

c++ - 当目标是 Windows 时,gyp 中的“拷贝”不会复制整个文件夹

sql - 如何在多个存储过程查询中搜索字符串

php - 如何在第三个变量 mysql 查询中对两个子查询计数求和?

json - 如何在 spring 3.1 中使用 RESTful webservice 获取 JSON 响应

javascript - getJSON 和 mod 重写

json - 如何在抖动中解析复杂的Json值?

c++ - 在枚举中重新声明变量

c++ - 将 C++ 中的数据保存到用户无法访问的文件中?