zoukankan      html  css  js  c++  java
  • mysql 5.7 支持json格式

    1、JSON格式的支持:
    mysql> create table user ( uid int auto_increment,  
        -> data json,primary key(uid))engine=innodb;  
    Query OK, 0 rows affected (0.01 sec)  
       
    mysql> insert into user values (NULL,  
        -> '{"name":"David","mail":"greenforestquan@163.com","address":"Shangahai"}');  
    Query OK, 1 row affected (0.00 sec)  
       
    mysql> insert into user values (NULL,'{"name":"Amy","mail":"amy@gmail.com"}');  
    Query OK, 1 row affected (0.00 sec) 
    【上面创建了data字段使用了【json】类型,此时data在插入数据时,其格式必须严格遵守json格式 即{"键1":"值1","键2":"值2"}】
    2、查询json格式的字段
    mysql> select jsn_extract(data, '$.name'),jsn_extract(data,'$.address') from user;  
    +-----------------------------+-------------------------------+  
    | jsn_extract(data, '$.name') | jsn_extract(data,'$.address') |  
    +-----------------------------+-------------------------------+  
    | "David" | "Shangahai" |  
    | "Amy" | NULL |  
    +-----------------------------+-------------------------------+  
    2 rows in set (0.00 sec) 
    3、给json格式的某个键字段创建索引。首先创建虚拟列,之后在改虚拟列上创建索引。
    mysql> ALTER TABLE user ADD user_name varchar(128)  
        -> GENERATED ALWAYS AS (jsn_extract(data,'$.name')) VIRTUAL;  
    Query OK, 0 rows affected (0.01 sec)  
    Records: 0 Duplicates: 0 Warnings: 0  
       
    mysql> select user_name from user;  
    +-----------+  
    | user_name |  
    +-----------+  
    | "Amy"     |  
    | "David"   |  
    +-----------+  
    2 rows in set (0.00 sec)  
       
    mysql> alter table user add index idx_username (user_name);  
    Query OK, 2 rows affected (0.01 sec)  
    Records: 2  Duplicates: 0  Warnings: 0  
    4、之后通过虚拟列名对json特定列进行索引查询:
    mysql> explain select * from user where user_name='"Amy"'G
    *************************** 1. row ***************************
               id: 1
      select_type: SIMPLE
            table: user
       partitions: NULL
             type: ref
    possible_keys: idx_username
              key: idx_username
          key_len: 131
              ref: const
             rows: 1
         filtered: 100.00
            Extra: NULL
    1 row in set, 1 warning (0.00 sec)

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

    如果,想给予我更多的鼓励,求打

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读!

  • 相关阅读:
    nodejs安装
    mongodb安装指南
    JQuery控制input的readonly和disabled属性
    C# 汉子增加UTF-8头
    Microsoft Visual C++ 2005 SP1 Redistributable 安装错误
    sql server 查找指定字符串的位置
    sql server 数据库附加时程序集错误
    前端路由
    CSS学习笔记——选择器优先级
    CSS学习笔记——盒子模型
  • 原文地址:https://www.cnblogs.com/GreenForestQuan/p/6044995.html
Copyright © 2011-2022 走看看