zoukankan      html  css  js  c++  java
  • MySQL json应用

    json基础应用

    CREATE TABLE test_json(id INT PRIMARY KEY ,u_name VARCHAR(20),info json);

    insert插入json记录

    插入json数组

    INSERT INTO test_json VALUES(1,'tom',json_array(99,'测试',NULL,TRUE,CURTIME()));
    
    mysql> SELECT * FROM test_json;
    +----+--------+-----------------------------------------------+
    | id | u_name | info                                          |
    +----+--------+-----------------------------------------------+
    |  1 | tom    | [99, "测试", null, true, "23:03:35.000000"]   |
    +----+--------+-----------------------------------------------+
    1 row in set (0.00 sec)

    插入json对象(自动转换成k-v形式)

    INSERT INTO test_json VALUES(2,'jerry',json_object('age',15,'time',NOW()));
    
    mysql> SELECT * FROM test_json;
    +----+--------+---------------------------------------------------+
    | id | u_name | info                                              |
    +----+--------+---------------------------------------------------+
    |  1 | tom    | [99, "测试", null, true, "23:03:35.000000"]       |
    |  2 | jerry  | {"age": 15, "time": "2020-06-19 23:07:24.000000"} |
    +----+--------+---------------------------------------------------+
    2 rows in set (0.00 sec)
    INSERT INTO test_json VALUES(3,'jerry','{"city":"北京市","`time`":"2020-06-19 23:07:28"}');
    
    mysql> SELECT * FROM test_json;
    +----+--------+--------------------------------------------------------+
    | id | u_name | info                                                   |
    +----+--------+--------------------------------------------------------+
    |  1 | tom    | [99, "测试", null, true, "23:03:35.000000"]            |
    |  2 | jerry  | {"age": 15, "time": "2020-06-19 23:07:24.000000"}      |
    |  3 | jerry  | {"city": "北京市", "`time`": "2020-06-19 23:07:28"}    |
    +----+--------+--------------------------------------------------------+

    select查询json记录

    mysql> SELECT json_extract(info,'$.age') FROM test_json;
    +----------------------------+
    | json_extract(info,'$.age') |
    +----------------------------+
    | NULL                       |
    | 15                         |
    | NULL                       |
    +----------------------------+
    3 rows in set (0.00 sec)
    
    mysql> SELECT json_extract(info,'$.age','$.city') FROM test_json;
    +-------------------------------------+
    | json_extract(info,'$.age','$.city') |
    +-------------------------------------+
    | NULL                                |
    | [15]                                |
    | ["北京市"]                          |
    +-------------------------------------+
    3 rows in set (0.00 sec)

    查询key

    mysql> select id,json_keys(info) from test_json;
    +----+--------------------+
    | id | json_keys(info)    |
    +----+--------------------+
    |  1 | NULL               |
    |  2 | ["age", "time"]    |
    |  3 | ["city", "`time`"] |
    +----+--------------------+
    3 rows in set (0.00 sec)

    update 修改记录

    增加键

    UPDATE test_json SET info = json_set(info,'$.ip','10.0.0.10') WHERE id =3;
    mysql> SELECT * FROM test_json;
    +----+--------+---------------------------------------------------------------------------+
    | id | u_name | info                                                                      |
    +----+--------+---------------------------------------------------------------------------+
    |  1 | tom    | [99, "测试", null, true, "23:03:35.000000"]                               |
    |  2 | jerry  | {"age": 15, "time": "2020-06-19 23:07:24.000000"}                         |
    |  3 | jerry  | {"ip": "10.0.0.10", "city": "北京市", "`time`": "2020-06-19 23:07:28"}    |
    +----+--------+---------------------------------------------------------------------------+
    3 rows in set (0.00 sec)

    删除键

    mysql> UPDATE test_json SET info = json_remove(info,'$.ip') WHERE id = 3;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> SELECT * FROM test_json;
    +----+--------+--------------------------------------------------------+
    | id | u_name | info                                                   |
    +----+--------+--------------------------------------------------------+
    |  1 | tom    | [99, "测试", null, true, "23:03:35.000000"]            |
    |  2 | jerry  | {"age": 15, "time": "2020-06-19 23:07:24.000000"}      |
    |  3 | jerry  | {"city": "北京市", "`time`": "2020-06-19 23:07:28"}    |
    +----+--------+--------------------------------------------------------+
    3 rows in set (0.00 sec)
  • 相关阅读:
    使用MAT 分析内存泄漏实战
    测试面试题集锦----liunx与网络
    Python中request的post请求报requests.exceptions.SSLError:
    python 中requests的返回数可直接使用json
    unittest中的TestLoader使用
    3秒钟unittest入门使用
    postman做接口测试 application/x-www-form-urlencoded 格式与json格式互转
    python读取yaml文件,在unittest中使用
    python 传入任意多个参数(方法调用可传参或不传参)
    boost写的异步客户端样例代码修改为支持断开重连的代码
  • 原文地址:https://www.cnblogs.com/zh-dream/p/13170344.html
Copyright © 2011-2022 走看看