我的JSON字符串存储在我的数据库列中。我必须在JSON字符串中更新该值。
这是我的表。
我想更新state
它里面的值。
Name1的状态值为KA,因此我想将其更新为GJ。
发布于 2018-03-22 09:54:54
12.16 JSON函数 ... 除非另有说明,否则JSON函数会添加到MySQL 5.7.8中。 ...
尝试:
UPDATE `Customer`
SET `Detail` = JSON_REPLACE(`Detail`, '$.Address.State', 'GJ')
WHERE `Name` = 'name1';
发布于 2018-03-22 11:27:32
JSON函数是在MySQL 5.7.8中添加的。
这可能看起来像这样:
// fetch the details
$sth = $pdo->prepare('select `Detail` from `Customer` where `Name` = ?');
$sth->execute(['name1']);
$detail = json_decode($sth->fetchColumn(), true);
// modify the state
$detail['Address']['State'] = 'KA';
// update the details
$sth = $pdo->prepare('update `Customer` set `Detail` = ? where `Name` = ?');
$sth->execute([json_encode($detail), 'name1']);
但我建议只要可能就升级你的MySQL
https://stackoverflow.com/questions/-100004291
复制相似问题