更新 Mysql/Mariadb 中嵌套的 Json
Update nested Json in Mysql/Mariadb
{
"people": {
"Man": {
"Employee": "50",
"Student": "91",
"Artist": "80",
"Clark": "50"
},
"Woman": {
"Employee": "21",
"Student": "01",
"Artist": "00",
"k3": "30",
"Clark": "68"
}
}
}
如何从 Man
对象更新 Employee
值。我想要类似于下面 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 |
+--------------------------------------------+
首先,修复 JSON 列中的 keys
,为每个列添加引号,values
为一些以零开头并继续其他数字的引号添加引号。
然后申请:
UPDATE tab
SET Col = JSON_SET(
Col,
"$.people.Man.Employee", "50",
"$.people.Man.Employee", "51"
)
WHERE ID = 1234567890;
{
"people": {
"Man": {
"Employee": "50",
"Student": "91",
"Artist": "80",
"Clark": "50"
},
"Woman": {
"Employee": "21",
"Student": "01",
"Artist": "00",
"k3": "30",
"Clark": "68"
}
}
}
如何从 Man
对象更新 Employee
值。我想要类似于下面 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 |
+--------------------------------------------+
首先,修复 JSON 列中的 keys
,为每个列添加引号,values
为一些以零开头并继续其他数字的引号添加引号。
然后申请:
UPDATE tab
SET Col = JSON_SET(
Col,
"$.people.Man.Employee", "50",
"$.people.Man.Employee", "51"
)
WHERE ID = 1234567890;