zoukankan      html  css  js  c++  java
  • mysql json类型

    参考了https://www.cnblogs.com/captainad/p/11176127.html, 

    最近查数据库时,遇到了下面这样的,

     select 字段名 from 表 where data='{}'怎么都查不出来 ,突然注意到它的字段类型原来是json类型。

    json 数据类型是mysql 5.7之后引入的 

    新建:json类型创建和其他类型差不多,跳过.

    插入:INSERT into Student(content) VALUES ('{"name":"zhangsan","age":22}');

    更新:update Student set content = '{"name":"xiaoming","age":19,"height":"1.82"}' where id =2 ; 更新也差不多

    增加json数据类型的好处:

    1.保证了JSON数据类型的强校验、

    2。MySQL同时提供了一组操作JSON类型数据的内置函数、

    3。更优化的存储格式 ,容易读取

    4。基于json格式的特征支持修改特定的值

    常用json函数:

     查询sql :查询json中某个字段值 

     使用 字段->’$.json属性’进行查询条件

    或者JSON_EXTRACT(字段, "$.json属性")

      select  * from student where content->'$.name' = "zhangsan"; 

    select content->"$.name" from student where id =2;

    select JSON_EXTRACT(content, "$.name") from student where id =2;

    json_keys 查询json中含有的所有属性名,并返回数组

    SELECT id,json_keys(content) FROM student;

    json_set 增加json中属性

    UPDATE student SET content = json_set(content,'$.weight','105') WHERE id = 2;

     json_replace 替换

    JSON_DEPTH 深度 

    json_length 长度  

     select  JSON_LENGTH(content) from student ;

    {"age": 22, "name": "zhangsan"} 2

    {"age": 19, "name": "xiaoming", "height": "1.82", "weight": "105"}  4

     select  JSON_DEPTH (content) from student ;  

    {"age": 22, "name": "zhangsan"} 2

    {"age": 19, "name": "xiaoming", "height": "1.82", "weight": "105"}  2

  • 相关阅读:
    Linux基础篇之软件源码包安装
    11-1 网络协议和管理
    bash-2 httpd服务的源码编译安装脚本
    8-1 文本三级剑客之sed
    9-3 磁盘存储与分区
    9-2 yum,dnf和apt
    9-1 软件包管理
    bash-1 初始化CentOS系统的初始化脚本
    3-3 man手册介绍
    5-3 文件权限
  • 原文地址:https://www.cnblogs.com/yxj808/p/14981133.html
Copyright © 2011-2022 走看看