MySQL 5.7 – 用于将JSON密钥的值设置为JSON对象的查询

使用
MySQL 5.7,如何将JSON列中的JSON键的值设置为JSON对象而不是字符串.

我用过这个查询:

SELECT json_set(profile, '$.twitter', '{"key1":"val1", "key2":"val2"}')
from account WHERE id=2

输出:

{"twitter": "{\"key1\":\"val1\", \"key2\":\"val2\"}", "facebook": "value", "googleplus": "google_val"}

但似乎它认为它是一个字符串,因为输出会转义它中的JSON字符.是否可以在不使用JSON_OBJECT()的情况下执行此操作?

最佳答案 我知道有几个选项:

>使用JSON_UNQUOTE函数取消输出(即不将其转换为字符串)为documented here
>可能使用 – >>运算符并选择特定路径,记录在here
>有很多含义,但你可以禁用反斜杠作为转义字符.我没试过这个,所以我甚至都不知道这是否有效,但它在the docs中提到过

总的来说,我要么使用 – >>运算符,或在客户端处理转换,具体取决于您要执行的操作.

点赞