Обновление объекта в массиве объектов с помощью предложения object where

#mysql #json #mysql-json

Вопрос:

Итак, у меня есть массив объектов в поле JSON MySQL следующим образом:

 [
{"f1": "v1", "f2":"v12", "f3":0, "f4":10, "f5": 1},
{"f1": "v1", "f2":"v12", "f3":1, "f4":20, "f5": 1},
{"f1": "v2", "f2":"v22", "f3":0, "f4":30, "f5": 1},
{"f1": "v2", "f2":"v22", "f3":1, "f4":40, "f5": 1}
]
 

Я пытаюсь написать запрос, в котором я могу обновить значение для ключа f5 после сопоставления с правильной позицией индекса, когда

 {"f1":"v1","f2":"v12","f3":0}
 

Я попытался использовать JSON_SEARCH, но он принимает строковое значение, и, следовательно, я получаю два объекта с индексом 0 и 3, когда я использовал

 SELECT JSON_SEARCH(j.json_data, 'all', 0, NULL, '$[*].f3' ) FROM json_test j;
 

Одним из решений является изменение JSON в контроллере и его обновление, но я ищу реализацию только для БД.