【问题标题】:MySQL 5.7 - Query to set the value of a JSON key to a JSON ObjectMySQL 5.7 - 查询以将 JSON 键的值设置为 JSON 对象
【发布时间】:2017-01-24 16:01:32
【问题描述】:

使用 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() 是否可以做到这一点?

【问题讨论】:

    标签: mysql json


    【解决方案1】:

    我知道有几个选项:

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

    总的来说,我要么使用->> 运算符,要么在客户端处理转换,这取决于你想要做什么。

    【讨论】:

      猜你喜欢
      • 2012-12-28
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 2011-06-26
      • 2016-12-23
      相关资源
      最近更新 更多