{
"transaction_states": {
"states": [
{
"status": "false",
"created_on": "2020-03-28 17:05:45",
"state_name": "fee-calculation",
"updated_on": "2020-03-29 16:16:45",
"reconciliation_process": null
},
{
"status": "false",
"created_on": "2020-03-28 17:05:45",
"state_name": "fee-calculation1",
"updated_on": "2020-03-28 16:05:45",
"reconciliation_process": null
}
],
"created_on": "2020-04-01 05:43:33",
"updated_on": "2020-04-01 06:55:24"
}
}
Я хочу обновить JSON, хочу добавить новый
" {
"status": "false",
"created_on": "2020-03-28 17:05:45",
"state_name": "fee-calculation2",
"updated_on": "2020-03-28 16:05:45",
"reconciliation_process": null
}"
после 2-го json проверки объекта, вывод будет после обновления
{
"transaction_states": {
"states": [
{
"status": "false",
"created_on": "2020-03-28 17:05:45",
"state_name": "fee-calculation",
"updated_on": "2020-03-29 16:16:45",
"reconciliation_process": null
},
{
"status": "false",
"created_on": "2020-03-28 17:05:45",
"state_name": "fee-calculation1",
"updated_on": "2020-03-28 16:05:45",
"reconciliation_process": null
},
{
"status": "false",
"created_on": "2020-03-28 17:05:45",
"state_name": "fee-calculation2",
"updated_on": "2020-03-28 16:05:45",
"reconciliation_process": null
}
],
"created_on": "2020-04-01 05:43:33",
"updated_on": "2020-04-01 06:55:24"
}
}
используя приведенный ниже запрос, который можно обновить, но нужно передать индекс массива статически
UPDATE txn SET TRANSACTION_STATES =
JSON_SET(COALESCE(TRANSACTION_STATES,JSON_OBJECT('states',
JSON_ARRAY())),'$.transaction_states.states[2]',("state-name","fee-
calculation2","created-on","2020-03-28 17:05:45","updated-on","2020-
03-28 16:05:45","status","false")) WHERE id = 'C0F998D';
здесь $.transaction_states.states[2]
- 2 - это индекс, куда вставлен объект JSON, любой может помочь мне в этом, так как индекс будет Dynami c