【发布时间】:2018-01-13 21:47:21
【问题描述】:
我的数据库列中存储了 JSON 字符串。我必须在 JSON 字符串中更新该值。
我想更新其中的state 值。
示例:
Name1 的状态值为
KA,所以我想将其更新为GJ。
到目前为止我尝试了什么?
UPDATE Customer
SET Detail = JSON_MODIFY(Detail , '$.Address.State', 'KA')
WHERE Name = 'name1';
也试过 JSON_REPLACE 也不起作用。
但它显示错误:
FUNCTION Customer.JSON_MODIFY 不存在不存在
注意:我知道一种解决方法可以做到这一点,但我不想获取该字符串并完全更新它。我想更新字符串中的特定细节。
我还创建了SQL Fiddle.
我在本地主机上执行此操作。以下是本地主机详细信息。
Database server
Server: localhost (localhost via TCP/IP)
Software: MySQL
MySQL Version :5.5.24
phpMyAdmin
Version information: 3.5.1, latest stable version: 4.7.3
【问题讨论】:
-
你用的是什么版本的 MySQL?
-
我将编辑这个有问题的细节@wchiquito
-
正如 wchiquito 已经告诉你的那样:json 是在 5.7 中添加的。您使用的是 5.5。所以所有这些 json 函数都不起作用,因为它们还不存在。而且我认为也没有可以进行此更新的json udf(但也许您很幸运)。所以要么升级你的mysql服务器,要么获取该字符串并完全更新它。
标签: php mysql json sql-update