【问题标题】:How can I use JSON_EXTRACT in MySQL and get a string without the quotes?如何在 MySQL 中使用 JSON_EXTRACT 并获取不带引号的字符串?
【发布时间】:2016-05-24 01:31:56
【问题描述】:

如果我有这样一个简单的 SELECT 语句:

SELECT JSON_EXTRACT('{"username":"Alexander"}', '$.username');

我希望它返回 Alexander,但它却返回 "Alexander"。 我怎样才能摆脱引号?为什么这个函数也返回引号?

【问题讨论】:

  • 使用JSON_UNQUOTEcolumn->>path(MySQL 5.7.13 及更高版本):The ->> operator can be used wherever JSON_UNQUOTE(JSON_EXTRACT()) would be allowed.

标签: mysql


【解决方案1】:

您可以使用JSON_UNQUOTE 来实现此目的。

select JSON_UNQUOTE(JSON_EXTRACT(base, '$.scope')) as scope from t_name

参考:Functions That Modify JSON Values

【讨论】:

    【解决方案2】:

    你可以使用 replace() 来删除引号

    SELECT replace(JSON_EXTRACT('{"username":"Alexander"}', '$.username'), '\"', '');
    

    【讨论】:

    • 只有在值中没有 " 时才有效。这不应该使用。在 json 中," 用 \" 编码。JSON_EXTRACT 直接返回值而不将其转换为纯文本。不仅您删除所有“,而且您最终会得到额外的 \.如果我错了,请纠正我!
    猜你喜欢
    • 2021-02-17
    • 2019-01-31
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 2022-09-26
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多