• mysql中对比 JSON_VALUE 与 JSON_QUERY


    1. JSON概述

    MySQL里的json分为json array和json object。 $表示整个json对象,在索引数据时用下标(对于json array,从0开始)或键值(对于json object,含有特殊字符的key要用"括起来,比如$."my name")。

    例如:[3, {"a": [5, 6], "b": 10}, [99, 100]],那么:

    $[0]:3

    $[1]: {"a": [5, 6], "b": 10}

    $[2] :[99, 100]

    $[3] : NULL

    $[1].a:[5, 6]

    $[1].a[1]:6

    $[1].b:10

    $[2][0]:99

    2.JSON_VALUE 和 JSON_QUERY 之间的主要区别在于 JSON_VALUE 返回标量值,而 JSON_QUERY 返回数组或对象。

    例一:请参考以下示例 JSON 文本。

    JSON
    {
        "a": "[1,2]",
        "b": [1, 2],
        "c": "hi"
    }  
    

    在此示例 JSON 文本中,数据成员“a”和“c”是字符串值,而数据成员“b”是数组。 JSON_VALUE 和 JSON_QUERY 返回以下结果:

    路径JSON_VALUE 返回JSON_QUERY 返回
    $ NULL 或错误 { "a": "[1,2]", "b": [1,2], "c":"hi"}
    $.a [1,2] NULL 或错误
    $.b NULL 或错误 [1,2]
    $.b[0] 1 NULL 或错误
    $.c hi NULL 或错误

    例二:再举一个实际的例子,两种函数用法如下:

    SELECT JSON_VALUE(inverstor_info_json, '$.inverstorScore.addrFlagScore') FROM `t_customer_score` WHERE id= 47178;
    SELECT JSON_QUERY(inverstor_info_json, '$.famous') FROM `t_customer_score` WHERE id= 47178;
    inverstor_info_json存储文本格式举例如下:
    {"addrExist":"addrExist_1","addrFlag":"addrFlag_1","adjustScore":0,"best":0,"famous":0,"financing":"financing_1","incubator":"incubator_2","inverstorScore":{"addrExistScore":"0","addrFlagScore":"0","financingScore":"0.0","incubatorScore":"0"},"isStrategic":0,"noPhone":0,"professional":0,"straBest":0,"straFamous":0,"straProfessional":0,"strategicInvestment":""}
     
  • 相关阅读:
    51-maven私有库神坑之:“Downloading: http://repo.maven.apache.org/maven2/”
    50-maven 仓库配置
    49-2017年第八届蓝桥杯国赛试题及详解(Java本科B组)
    21-matlab 迷宫题
    20-matlab全排列-函数调用
    52-python 画图二维
    51-python3 pandas读写excel
    48-设置tomcat虚拟路径的两种方法(Eclipse、tomcat、IDEA)
    19-matlab知识点复习二
    【剑指offer】二叉搜索树的后序遍历序列
  • 原文地址:https://www.cnblogs.com/xiyouzhi/p/9914271.html
Copyright © 2020-2023  润新知