• mysql-笔记 json


    1 JSON 列不能有non-NULL 默认值

    2 JSON值:数组:["abc",10,null,true,false] 可嵌套

                        对象:{"k1":"value","k2":10}可嵌套

       值:可以是字符串、数字、null /布尔 、时间 ,

       关键字 :必须是字符串

    3 可以使用cast(value as json) 转化其他类型到json类型

    4 插入一个json列,如果是有效的json值可以插入数据,如果不是则出错

    create table testjson(jdoc JSON);

    insert into testjson values('{"k1":"v1","k2":"v2"}');

    5 JSON_TYPE(json_doc) 接收json参数并转为json值,如果有效则返回json类型,否则报错

    select JSON_TYPE('["a","b",1]');

    6 json_array() 接收一个列表可以是空 转为包括这样值的json数组 

    select json_array('a',1,now());

    select json_object('k1':1,'k2':'abc')

    7 JSON_MERGE() 合并多个json----其中有一个为数组时合并为一个数组,都为对象时合并为一个对象

    select json_merge('["a",1]','{'key":"value"}'); 合并为一个数组

     8 赋值给变量:set @j=json_object('key','value'); select @j;

    @j 变量不是json类型 json_object转变为字符 字符集:utf8mb4 ,排序 utf8mb4_bin

    select charset(@j),collation(@j);

    9 json 值做比较时区分大小写,null /true false 必须小写

    select json_valid(null),json_valid(True);

     如果需要输入 单引号或双引号 做为 值的一部分。需要使用 json_object()使用反斜线+' "

    insert into testjson values(json_object("mascot","named "sakila"."));

    或使用双反斜线 insert info testjson values('{"mascot":"named \"sakila\"."}');

    或使用交替使用单双引 insert into testjson values(json_object('mascot','named "sakila".'));

    select jdoc->>"$.mascot" from facts; 

     10 一个字符串可转化为json字符串时,重复的键只添加最初始的一个。其他的不生成json

    SELECT JSON_OBJECT('key1', 1, 'key2', 'abc', 'key1', 'def');

    11 合并 json_merge 如果多个对象有同一个键时,合并后对应的键生成一个数组值

    select json_merge('{"a":1,"b":2}','{"c":3,"a":4}');

    12 如果键包含空格 必须使用引号 引用:$."a fish" 

    13 使用索引$[].b[] 取值

  • 相关阅读:
    Mahout推荐算法ItemBased
    ALSA安装编程指南
    windbg更改cmd的token提升其特权
    至尊问题
    什么是“Bash”破绽?
    hdu 1548 A strange lift
    C 循环链表
    C++ 链表
    C_数据结构_链表的链式实现
    C _数据结构 _线性表的顺序存储
  • 原文地址:https://www.cnblogs.com/caojuansh/p/10482528.html
Copyright © 2020-2023  润新知