将json对象 Package /转换为对象数组MySQL

jdzmm42g  于 2022-11-26  发布在  Mysql
关注(0)|答案(2)|浏览(177)

我有一个名为data的列,我必须将表中每条记录的内容从{}更新为[{}]A,我尝试使用JSON_ARRAY(),但它给了我一个带引号的

["{\"something\": \"true\"}"]

但我想吃点

[{ "something": "true" }]

我现在怎么办?

SELECT JSON_ARRAY(data) FROM A;

我应该如何使用JSON_SET()UPDATE更新它?

w6lpcovy

w6lpcovy1#

您需要使用路径来获取JSON格式的数据,而不是引用列本身。路径$表示顶级对象。

update A 
SET data = CASE
    WHEN data IS NULL THEN '[]' -- NULL becomes empty array
    WHEN LEFT(data, 1) = '[' THEN data -- leave existing array alone
    ELSE JSON_ARRAY(data->"$") -- put object inside array
END

DEMO

qkf9rpyu

qkf9rpyu2#

尝试使用

SELECT JSON_ARRAY_AGG(JSON_OBJECT(data)) from A;

相关问题