MySQL,json,JSON_ARRAY_APPEND -为什么append在5.7.13上不起作用?

pxiryf3j  于 2023-06-04  发布在  Mysql
关注(0)|答案(3)|浏览(609)

我究竟如何将数据插入到json mysql字段中。
我可以创造一个记录

INSERT INTO git_object (user_id,git_meta,last_update) VALUES ('11111','[{"host": "a", "id": "1"}]',(select now()));

我如何追加到数组。

SELECT JSON_ARRAY_APPEND(git_meta, '$', '{"host": "b"}') FROM git_object where user_id='11111'

我试过上面的。下面的是什么?

SELECT * FROM git_object;

'[{"id": "1", "host": "a"}]'

我做错了什么
MySQL版本'5.7.13'

txu3uszq

txu3uszq1#

要修改存储在任何表中的数据,您需要使用update sql命令,而不是select。

Update git_object
set  git_meta=JSON_ARRAY_APPEND(git_meta, '$', '{"host": "b"}')
where user_id='11111'
kknvjkwl

kknvjkwl2#

使用JSON_ARRAY_APPEND(git_meta, '$', JSON_OBJECT('host','b'))
而不是JSON_ARRAY_APPEND(git_meta, '$', '{"host": "b"}')

5w9g7ksd

5w9g7ksd3#

你可以使用'cast'来这样做。

JSON_ARRAY_APPEND('[]', '$', CAST('{"host": "b"}' as JSON));

相关问题