2017-07-03 71 views
0

我在MySQL数据库中有一个JSON列。我想与其他使用MySQL JSON_SEARCH和JSON_REPLACE不会转义引号

UPDATE table SET ColName = JSON_REPLACE(ColName, '{"sample": "sample"}'); 

似乎在执行该语句之后,MySQL是插入\“转义在我的JSON性质引号,像这样:

{\”,更换一个JSON对象样本\“:\”样本\“}

这是导致我的JSON_SEARCH查询在寻找失败的‘样本’由于转义引号有没有一种方法,我可以使用JSON_REPLACE无需其逃逸添加到双引号?

我尝试在我的更新语句中绕JSON_REPLACE包装JSON_UNQUOTE,但这并没有解决问题。

+0

我想你需要传递一个JSON对象,而不是一个varchar:https://dev.mysql.com/doc/refman/5.7/en/json-creation-functions.html#function_json-object –

+1

尝试: '... CAST('{“sample”:“sample”}'AS JSON)...'。请参见[12.10 Cast函数和运算符:: CAST()](https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_cast)。 – wchiquito

回答

0

wchiquito的回答工作

“尝试... CAST('{"sample": "sample"}' AS JSON) ...

wchiquito,我可以,如果你发布一个答案接受的答案更改为您的评论。