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[] 取值

mysql-笔记 json的更多相关文章

  1. MYSQL转换JSON

    http://51strive.com/ <!DOCTYPE html><html><head><meta charset="UTF-8" ...

  2. MySQL笔记汇总

    [目录] MySQL笔记汇总 一.mysql简介 数据简介 结构化查询语言 二.mysql命令行操作 三.数据库(表)更改 表相关 字段相关 索引相关 表引擎操作 四.数据库类型 数字型 字符串型 日 ...

  3. [转]MySQL常用Json函数和MySQL常用字符串函数

    MySQL常用Json函数:https://www.cnblogs.com/waterystone/p/5626098.html MySQL常用字符串函数:https://www.cnblogs.co ...

  4. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  5. centos7.2下安装Mysql笔记

    centos7.2下安装Mysql笔记 安装 MySQL 适用于 CentOS 7.0 或以后版本: yum install mariadb mariadb-server 适用于 CentOS 6.8 ...

  6. MySQL笔记(六)游标练习

    23.3.1 Trigger Syntax and Examples 意义不明的几道练习,留着备用. 感觉不好写,而且难以调试..不知道以后会不会有实际的应用场景. 环境:MySQL 笔记(三)由 t ...

  7. mysql 笔记(一)

    mysql 笔记 预留 mysql> use mysql; mysql> grant all privileges  on *.* to root@'%' identified by &q ...

  8. 【MySQL笔记】SQL语言四大类语言

     SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL.   1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句, ...

  9. JAVASCRIPT高程笔记-------JSON与AJAX

    json对象——语法 简单值:与JS相同语法,可以是字符串,数值,布尔值,null:但不支持undefined 对象: 复杂数据类型,表示一组有序的键值对,键值对的值可以是简单数据,也可以是复杂数据 ...

  10. Mysql 笔记二

    Mysql 笔记二 Mysql 笔记二 Table of Contents 1. 前言 2. Master Thread 工作方式 2.1. 主循环(loop) 2.2. 后台循(backgroup ...

随机推荐

  1. linux下tomcat启动很慢的解决办法

    1.用vim编辑器打开tomcat的bin目录下的catalina.sh [root@iz09a32x1sghz3z bin]# vi /usr/local/src/java/tomcats/tomc ...

  2. SAP MM 根据采购订单反查采购申请?

    SAP MM 根据采购订单反查采购申请? 前日微信上某同行发来一个message,说是想知道如何通过采购订单号查询到其前端的采购申请号. 笔者首先想到去检查采购订单相关的常用报表ME2L/ME2M/M ...

  3. 【Vue 2.x】指令的学习

      v-on作用于事件,简写@ v-bind作用于html元素的属性,简写: v-for作用于模板内的变量,和C#的foreach类似的用法 v-if和v-show条件渲染html元素 v-model ...

  4. angular应用容器化部署

    angular 应用容器化部署 Intro 我自己有做一个个人主页,虽然效果不怎么样(不懂设计的典型程序猿...),但是记录了我对于前端框架及工具的一些实践, 从开始只有一个 angularjs 制作 ...

  5. 关于Python, ftplib模块中的cwd()进入含中文目录失败的问题

    使用Python的ftplib模块连接ftp服务器时, 使用cwd()连接含中文的目录, 报错 : UnicodeEncodeError: 'latin-1' codec can't encode c ...

  6. MySQL索引设计需要考虑哪些因素?

    索引小知识 篇幅有限,索引的基本知识我们就不赘述了,在此,我们尝试说明其中的一个小点-----B+树与B树的区别到底是什么. InnoDB是使用B+树来实现其索引功能的.在B+树中,内节点(非叶子节点 ...

  7. asp.net --> 初识WCF

    对于刚开始接触wcf的同志,可以有效的理解wcf的使用场景. 引用该文章(点击查看),简单的介绍wcf的使用.另一篇文章(点击查看),和上述文章内容差不多.

  8. 报错:library not found for -lstdc++.6.0.9

    在Xcode 10开发中, 报错:library not found for -lstdc++.6.0.9 解决方案:将Xcode9的libstdc++6.0.9.tbd拷贝到Xcode10中使用 X ...

  9. XML详解二XML的解析与创建

    XML用来传输和存储数据,如何解析获取到的XML文本呢? 一.解析XML 创建demo.xml文件: <?xml version="1.0" encoding="U ...

  10. audio

    // media.cpp : 定义控制台应用程序的入口点. // https://wenku.baidu.com/view/e910c474c5da50e2524d7fb4.html https:// ...