如何根据数组中的唯一值更新该对象?假设这是我的json对象,存储在一个名为objects的表和一个名为content的列中
table: objects
id: 7383
content: { data:[{id: 111, active: 1 }, {id: 222, active: 1 }, {id: 333, active: 0 }] }
如果我知道元素在数组中的位置,我就可以更新对象
SET content = JSON_REPLACE(content,'$.data[1].active', 0)
Where id = 7383
但是,如果我不知道数组的位置,但知道对象中id的值(例如222),那么如何将id为222的对象的active更新为0?
1条答案
按热度按时间jhkqcmku1#
目前,用mysql json函数查找数值比较复杂。在如下所示的json中,很简单:
有很多方法可以满足您的需求,我提供一种可以给您提供想法的方法(修改所有必要的内容):
小心可能的性能问题。
见小提琴。
在mysql的最新版本(>=8.0.4)中,这句话要简单得多:
见db小提琴。