【发布时间】:2021-12-13 14:29:49
【问题描述】:
给定一个包含 JSON 文档的列,我可以使用 JSON_SET() 将 JSON 文档中的键设置为值。支持的值为null、true、false、数字和字符串;但我不知道如何设置数组。
example in the documentation(对于JSON_INSERT(),但它的工作原理相同)奇怪地显示了一个天真的用户可能会如何尝试设置数组值而失败,但是有点灯罩它;如果你仔细观察你会发现这个数组被转换成了一个字符串。
我想出了一个你第一次使用的解决方法:
JSON_SET(col, '$.field', "first value")
-- {"field": "first value"}
然后:
JSON_ARRAY_APPEND(col, '$.field', "second value")
-- {"field": ["first value", "second value"]}
但是这样做有各种各样的问题,最重要的是它不能用于设置少于2个值的数组。
【问题讨论】: