Обновить вложенный Json в Mysql / Mariadb
{
"people": {
"Man": {Employe:50, Student:91, Artist:80, Clark:50},
"Woman": {Employe:21, Student:01, Artist:00, k3:30, Clark:68}
}
}
Как я могу обновить значение "Работать" из объекта "Человек". Я хочу что-то похожее на запрос mysql ниже.
UPDATE TABLE SET Column=JSON_SET(Column, '$.people.Man.Employe', '51') where Id=1234567890;
MariaDB [**********]> SELECT VERSION();
+--------------------------------------------+
| VERSION() |
+--------------------------------------------+
| 10.3.17-MariaDB-1:10.3.17+maria~bionic-log |
+--------------------------------------------+
2 ответа
Решение
Во-первых, исправьте keys
в столбце JSON, добавив кавычки для каждого, и values
добавляя кавычки для некоторых, которые начинаются с нулей и заканчиваются другими цифрами.
Затем примените:
UPDATE tab
SET Col = JSON_SET(
Col,
"$.people.Man.Employee", "50",
"$.people.Man.Employee", "51"
)
WHERE ID = 1234567890;
Даже, я не вижу никакой проблемы со следующим
UPDATE tab
SET
Col = JSON_SET(Col, '$.people.Man.Employee', '51')
WHERE
Id = 1234567890;