【发布时间】:2019-04-18 10:40:55
【问题描述】:
我需要从 MySQL 中的 JSON 数组中删除多个值
我已经在每个值上尝试了 JSON_REMOVE 和 JSON_SEARCH,但是在删除元素后 INDEX 发生了变化
JSON 数组:
["1", "5", "18", "68"]
例如:去掉“5”和“68”
预期结果:
["1", "18"]
已编辑:
我尝试过的代码:
JSON_REMOVE(`can_see`, JSON_UNQUOTE(JSON_SEARCH(`can_see`, 'one', '5')), JSON_UNQUOTE(JSON_SEARCH(`can_see`, 'one', '68')))
查询结果:
["1", "18", "68"]
在索引 $[0] 处删除“5”后,“68”索引更改为 $[2],但 JSON_SEARCH 从原始 json 返回 $[3]
我也试过嵌套:
JSON_REMOVE(JSON_REMOVE(`can_see`, JSON_UNQUOTE(JSON_SEARCH(`can_see`, 'one', '5'))), JSON_UNQUOTE(JSON_SEARCH(JSON_REMOVE(`can_see`, JSON_UNQUOTE(JSON_SEARCH(`can_see`, 'one', '5'))), 'one', '68')))
这可行,但如果我想删除超过 2 个值,它会变得混乱
【问题讨论】:
-
你能告诉我们你尝试了什么吗?这将有助于为您的问题提供背景信息。 INDEX 有什么变化?
-
愚蠢的答案当然是先做 68 和 5 秒然后索引就不是问题了
-
@RiggsFolly 我需要确保数组已排序
-
“我需要确保数组已排序” 我发布了一个答案,这有帮助吗?