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. 【学习笔记】tensorflow实现一个简单的线性回归

    目录 准备知识 Tensorflow运算API 梯度下降API 简单的线性回归的实现 建立事件文件 变量作用域 增加变量显示 模型的保存与加载 自定义命令行参数 准备知识 Tensorflow运算AP ...

  2. JAVA微信支付接口开发——支付

    微信支付接口开发--支付 这几天在做支付服务,系统接入了支付宝.微信.银联三方支付接口.个人感觉支付宝的接口开发较为简单,并且易于测试. 关于数据传输,微信是用xml,所以需要对xml进行解析. 1. ...

  3. Adaptive Placeholders

    https://wisdmlabs.com/blog/create-adaptive-placeholders-using-css/ https://circleci.com/blog/adaptiv ...

  4. jQuery ajax-param()

    param() 方法创建数组或对象的序列化表示. 该序列化值可在进行 AJAX 请求时在 URL 查询字符串中使用. 序列化一个 key/value 对象: var params = { width: ...

  5. Dynamics CRM图表高级话题:创建跨实体的图表

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复147或者20150728可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 制作图表你会发现,在界面上只能选 ...

  6. 0.react学习笔记-环境搭建与脚手架

    0.环境搭建 笔者使用的是deepin/mac两种系统,因为两个电脑经常切换用.环境搭建没什么区别. 0.1 node安装 按照node官网叙述安装 # Using Debian, as root c ...

  7. 国外线下技术俱乐部建设(1) - Belgrade Python技术俱乐部2019-01-25活动感悟

    这是<国外线下技术俱乐部建设>系列文章之一.   虽然之前接触过Belgrade的.NET技术俱乐部,但是它最近活动要春节后了. 出于观摩别人是怎么搞线下社区的心态,还有自己也有在用Pyt ...

  8. MySQL5.5.51启用网络远程连接

    在其它电脑主机上访问时提示host ip is not allowed to connect to this mysql 下面代码为解决该问题的方法: :\Program Files\mysql-\b ...

  9. SQL server 远程连接不成功解决

    一直以来打算自己做一个博客网站,前段时间开始准备做了,正好碰上新睿云服务器免费一年的活动,赶紧拿下.装好了sqlserver ,用本地访问没有问题,但是关键是外网访问一直不行找了好多资料最终才搞定.下 ...

  10. sql判断字段是否为空

    sql语句条件查询时,有时会判断某个字段是否为空. 字段内容为空有两种情况 1.为null 2.为字符串的空'' 语句如下: select * from table where column is n ...