programing

Mysql/Mariadb에서 중첩된 Json 업데이트

minimums 2023. 8. 31. 23:45
반응형

Mysql/Mariadb에서 중첩된 Json 업데이트

{
  "people": {
    "Man": {
      "Employee": "50",
      "Student": "91",
      "Artist": "80",
      "Clark": "50"
    },
    "Woman": {
      "Employee": "21",
      "Student": "01",
      "Artist": "00",
      "k3": "30",
      "Clark": "68"
    }
  }
}

업데이트 방법Employee값 출처Man물건.아래 mysql 쿼리와 유사한 것을 원합니다.

UPDATE TABLE 
   SET Column = JSON_SET(Column, '$.people.Man.Employee', '51') 
  WHERE Id=1234567890;

MariaDB [**********]> SELECT VERSION();

+--------------------------------------------+
| VERSION()                                  |
+--------------------------------------------+
| 10.3.17-MariaDB-1:10.3.17+maria~bionic-log |
+--------------------------------------------+

먼저, 다음을 수정합니다.keys각 값에 대한 따옴표를 추가하여 JSON 열 내에서 사용할 수 있습니다.values0으로 시작하고 다른 숫자로 이어지는 일부 따옴표를 추가합니다.

그런 다음 적용:

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

Demo

심지어, 저는 다음과 같은 문제가 없다고 생각합니다.

UPDATE tab
SET 
    Col = JSON_SET(Col, '$.people.Man.Employee', '51')
WHERE
    Id = 1234567890;

데모

언급URL : https://stackoverflow.com/questions/60278465/update-nested-json-in-mysql-mariadb

반응형