【发布时间】:2020-03-05 14:15:36
【问题描述】:
我有一个从数据库上的 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"}]
我在 StackOverflow、Google 中搜索过,要么我不明白如何将这个文件缩减为这个。
{"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
【问题讨论】:
-
您使用什么编程语言?您是否真的尝试编写任何代码?如果有,请出示。使用循环来做到这一点应该不难。你到底在坚持什么?附言
"clel_legality":"1,2,3,4,5,6"真的不是一个好的结构。考虑将其设为数字数组而不是逗号分隔的字符串。之后更容易使用。 -
我在 Phpmyadmin 上使用 SQL 查询生成表,并将其导出为 JSON。
-
是的。但我的问题是你将使用什么语言来减少 JSON?到目前为止,你做了什么尝试来尝试减少,或者研究你可能会如何去做? (如果您向我们展示您使用的查询,作为上下文,也会很有帮助。)
-
目标是在 C++ 中解析 JSON,以便能够在此数据上创建图表。所以我不得不直接从 PhpMyAdmin 导出 JSON。我有一个执行 SQL 查询并获取数据的 PHP 脚本,但我不知道如何有效地处理数据。我有大约 258000 行输入,从技术上讲,我必须有大约 18000 行输出。我不依附于任何特定的语言,我只是在寻找一种有效快速地合并行的方法。
-
您可能想研究使用 mysql 的
Group_CONCAT功能。 link
标签: c++ sql json phpmyadmin