首页 > 解决方案 > 使用 PHP 更改数据库中的 JSON 值

问题描述

我的 MySQL 数据库中有一个 params 列,其中包含:'{"usergroup" : "1", "language" : "ENG"}';. 我可以使用标准 PDO 更新将语言值 ENG 更改为 GER 吗?

显然,我可以只SELECT将表格单元格的全部内容'{"usergroup" : "1", "language" : "ENG"}';,用 解码,然后在第二步中json_decode更改ENG为表格单元格。GERUPDATE

我正在寻找一种捷径,UPDATE它只允许我ENGGER不接触其他数据或解码/编码整个数据集的情况下进行操作。

标签: phpmysqljson

解决方案


您可以为此使用该JSON_REPLACE功能。

UPDATE `MyTable`
SET `json` = JSON_REPLACE(json, '$.language', 'GER')
WHERE ...

以下是其他 JSON 操作函数的概述:https ://dev.mysql.com/doc/refman/5.7/en/json-function-reference.html 。


推荐阅读