【发布时间】:2017-12-07 02:41:30
【问题描述】:
我在 MySQL 数据库中有一个 JSON 列。我正在尝试使用
将 JSON 对象替换为另一个对象UPDATE table SET ColName = JSON_REPLACE(ColName, '{"sample": "sample"}');
执行此语句后,MySQL 似乎在我的 JSON 属性周围插入 \" 转义引号,如下所示:
{\"样品\":\"样品\"}
这导致我的 JSON_SEARCH 查询由于转义引号而无法找到“样本”。有没有一种方法可以使用 JSON_REPLACE 而无需在双引号中添加转义符?
我尝试在更新语句中将 JSON_UNQUOTE 包裹在 JSON_REPLACE 周围,但这并没有解决问题。
【问题讨论】:
-
我猜你需要传递一个 JSON 对象,而不是一个 varchar:dev.mysql.com/doc/refman/5.7/en/…
-
试试:
... CAST('{"sample": "sample"}' AS JSON) ...。见12.10 Cast Functions and Operators::CAST()。