MySQL组并合并JSON值

rya*_*sta 16 mysql json

我正在使用一些本机JSON字段来存储MySQL 5.7.10数据库中某些应用程序实体的信息.我可以为每个"实体"设置"N"行,并且需要汇总并将JSON对象合并在一起,并且任何冲突的键都应该替换而不是合并.我可以通过代码来实现这一点,但如果我能在MySQL中本地有效地做到这一点甚至更好.

我尝试使用GROUP_CONCAT和JSON_MERGE 的组合,但我遇到了两个问题:

  1. JSON_MERGE不会将结果GROUP_CONCAT作为有效参数
  2. JSON_MERGE组合了冲突键而不是替换它们.我真正需要的是更多的JSON_SET,但使用'N'个JSON文档而不是"key,value"表示法.

这可能与当前的MySQL JSON实现有关吗?

小智 0

JSON 值的聚合

对于 JSON 值的聚合,与其他数据类型一样,SQL NULL 值将被忽略。非 NULL 值将转换为数字类型并聚合,但 MIN()、MAX() 和 GROUP_CONCAT() 除外。对于数字标量的 JSON 值,转换为数字应该会产生有意义的结果,尽管(取决于值)可能会发生截断和精度损失。转换为其他 JSON 值的数量可能不会产生有意义的结果。

我刚刚在 mysql文档中找到了这个