我有一个json类型的列 mysql
命名 names
它是一个简单的json数组(不是key/value)。我找不到任何使用 JSON_EXTRACT
, JSON_SET
, JSON_REPLACE
, JSON_INSERT
对于简单json数组字段。
我知道还有其他方法可以在json字段类型中操作json数组,但是有可能对json数组使用这些函数吗?
例如, name
字段包含 ["A","B","C"]
,如何使用这些函数对这个json执行更新、插入和删除操作?
更新
查询必须从php脚本执行
2条答案
按热度按时间qncylg1j1#
您的值不是mysql的有效json数组。它需要在形式上
["A", "B", "C"]
. 一旦启动,您所指的功能将完全按照预期和手册中的描述工作;也就是说JSON_SET
如果值已经存在,将插入或替换,JSON_INSERT
如果值不存在,则将插入,并且JSON_REPLACE
将替换预先存在的值。mlnl4t2r2#
我想我找到了解决办法
对于json数组,不能使用
JSON_EXTRACT
,JSON_SET
,JSON_REPLACE
,JSON_INSERT
通过数组值,您必须知道每个值在json数组中的位置(在我看来,这是一个弱点)。例如,选择可以使用的第二个值
$[1]
,但对于插入值,可以使用JSON_ARRAY_APPEND
以及JSON_ARRAY_INSERT