【问题标题】:MySQL with special character in the json pathjson 路径中具有特殊字符的 MySQL
【发布时间】:2021-08-31 17:57:15
【问题描述】:

我在 mysql 中有一个列,它存储一个包含 json 文件的列,并且 json 的键可以包含任何 unicode 字符。我有一个查询来计算特定键的基数

SELECT COUNT(DISTINCT JSON_UNQUOTE(JSON_EXTRACT(dimensions, '$.*abc')))from `definition`

名称为*abc,其中包含一个特殊字符*,用于json 值的json 路径。我可以通过运行全选来确保我在 mysql 数据库中有带有键 *abc 的 json 文件。

那么我怎样才能查询带有特殊字符的 json 路径呢?来自https://dev.mysql.com/doc/refman/8.0/en/string-literals.html* 不应转义。

【问题讨论】:

    标签: mysql mysql-json


    【解决方案1】:

    您可以在键名中使用特殊字符,方法是用 "" 分隔它们:

    mysql> set @j = '{"*abc": 123}';
    
    mysql> select json_extract(cast(@j as json), '$."*abc"') as special;
    +---------+
    | special |
    +---------+
    | 123     |
    +---------+
    

    【讨论】:

    • 太棒了。很有帮助!
    猜你喜欢
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多