php - 使用 PHP 更改数据库中的 JSON 值
问题描述
我的 MySQL 数据库中有一个 params 列,其中包含:'{"usergroup" : "1", "language" : "ENG"}';
. 我可以使用标准 PDO 更新仅将语言值 ENG 更改为 GER 吗?
显然,我可以只SELECT
将表格单元格的全部内容'{"usergroup" : "1", "language" : "ENG"}';
,用 解码,然后在第二步中json_decode
更改ENG
为表格单元格。GER
UPDATE
我正在寻找一种捷径,UPDATE
它只允许我ENG
在GER
不接触其他数据或解码/编码整个数据集的情况下进行操作。
解决方案
您可以为此使用该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 。
推荐阅读
- html - CSS flexbox 两列
- rendering - GitHub 页面存储库链接到自定义域,但内容未呈现
- ios - UIContextualAction 的标题未显示完整的文本
- google-chrome - 使用浏览器提供的语音 BotFramework 时如何更改默认语言
- python - Python:在 3d 矩阵中沿一个轴查找最大值,使非最大值为零
- r - 用于数据帧的 R SQLDF PIVOT
- node.js - 为什么我可以在我的 NodeJS 代码中添加第二个中间件而不添加 next() 方法
- javascript - 如何从 div 的 id 开始获取所有具有内联样式(样式属性)的元素?
- python - Django - URLS 不在根主页中呈现视图
- java - 使用 API 模块构建的 Maven 多项目构建似乎不包含构建映像中的项目级依赖项