当路径不存在或部分存在时,如何在mysql / mariadb中插入json路径



试图告诉我的MariaDB数据库更新json(长文本)列。如果路径存在,它可以正常工作。如果路径不存在并且路径是一维的,它也能正常工作。如果路径是多维的且不存在或部分存在,则会中断。

jsondata = {"firstname":"Bob","stats":{"height":"72","weight":"200"}}

UPDATE table SET jsondata = JSON_INSERT(jsondata, '$.lastname', 'Smith') - Works

UPDATE table SET jsondata = JSON_INSERT(jsondata, '$.stats.hair', 'Brown') - Works

UPDATE table SET jsondata = JSON_INSERT(jsondata, '$.stats.hair.color', 'Brown') -不工作

UPDATE table SET jsondata = JSON_INSERT(jsondata, '$.car.make', 'Ford') -不工作

是否有一个我不知道的命令会在没有路径的地方创建路径?

我尝试创建一个递归函数来分解周期上的路径,并将路径逐级插入json文档,但它崩溃了。

编辑:谁帮我解决这个问题,我就给谁寄20美元Zelle/Venmo。

使用JSON_MERGE_PATCH()函数

DEMO fiddle (MySQL)

DEMO fiddle (MariaDB)

最新更新