Обновление вложено Json в Mysql / Mariadb - PullRequest
0 голосов
/ 18 февраля 2020
{
"people": {
    "Man": {Employe:50, Student:91, Artist:80, Clark:50},
    "Woman": {Employe:21, Student:01, Artist:00, k3:30, Clark:68}
      }
}

Как я могу обновить значение "Employe" из объекта "Man". Я хочу что-то похожее на запрос ниже 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 |
+--------------------------------------------+

1 Ответ

0 голосов
/ 18 февраля 2020

Во-первых, исправьте keys в столбце JSON, добавив кавычки для каждого, и values, добавив кавычки для некоторых, которые начинаются с нуля и go для других цифр.

Затем примените:

UPDATE tab
   SET Col = JSON_SET(
       Col,
       "$.people.Man.Employee", "50",
       "$.people.Man.Employee", "51"
       )
 WHERE ID = 1234567890;

Демо

...