Php 使用JSON_SET()更新JSON文档的部分,而不是将整个文档设置为新
我想更新MySQL数据库表中JSON文档的一部分 数据库中的字段名:Php 使用JSON_SET()更新JSON文档的部分,而不是将整个文档设置为新,php,mysql,json,Php,Mysql,Json,我想更新MySQL数据库表中JSON文档的一部分 数据库中的字段名:jdata 问题 我不想将其设置为jdata='{{u whatever}', 因为我会松开钥匙 I需要保留现有密钥(例如key1,key3) 并且仅将key2设置为其新的指定值999 JSON文档 PHP/MySQL 使用这样的完整路径:JSON_SET(jdata,'$.calculation.key2',999)在这里是没有选择的,因为原始的JSON文档要复杂得多,我必须迭代许多键。想象一下,有30个键/值对,需要更新其中
jdata
问题
我不想将其设置为jdata='{{u whatever}'
,
因为我会松开钥匙
I需要保留现有密钥(例如key1
,key3
)
并且仅将key2
设置为其新的指定值999
JSON文档
PHP/MySQL
使用这样的完整路径:JSON_SET(jdata,'$.calculation.key2',999)
在这里是没有选择的,因为原始的JSON文档要复杂得多,我必须迭代许多键。想象一下,有30个键/值对,需要更新其中的29个
希望任何人都能理解我的闲话。。。提前谢谢 悲哀!第一次没人说什么:(你知道吗?
{
"calculation":{
"key1": 100,
"key2": 200,
"key3": 300
}
}
$a = json_encode(['key2' => 999], JSON_UNESCAPED_SLASHES);
$sql =
" UPDATE svtr.auftrag
SET jdata = JSON_SET(jdata, '$.calculation', '{$a}')
WHERE[...]
";