mysql5.7新增的json字段类型用法实例分析

  

本文实例讲述了mysql5.7新增的json字段类型用法。分享给大家供大家参考,具体如下:

  

一,我们先创建一个表,准备点数据

        创建表“json_test”(   “id”int(11)无符号NOT NULL AUTO_INCREMENT评论“id”,   json的json默认空评论的json数据的,   主键(“id”)   )引擎=InnoDB的默认字符集=utf8mb4;   之前      

 mysql5.7新增的json字段类型用法实例分析

  

二、检索json列的字段

  

通过使用→或→祝辞运算符检索json列的字段

        选择id, json→美元[0]. items [0] . name”从json_test;   之前      

 mysql5.7新增的json字段类型用法实例分析

        选择id, json→在“美元[0]. items [0] . name”从json_test;   之前      

 mysql5.7新增的json字段类型用法实例分析

  

使用→和→祝辞的区别是结果用了引号包裹。

  

三,处理json的一些函数

  

JSON_PRETTY (json_val)以优雅的格式显示json值

        选择id, JSON_PRETTY (json)从json_test \ G;      

JSON_CONTAINS(目标,候选人[、路径])判断给定的候选人是否包含在目标中,如果指定了路径,则在指定路径中进行查找。

  

注意,注意,注意,这里的候选人如果是数字,需要用单引号包裹,如果是字符串,单引号里再加上双引号包裹。

        选择JSON_CONTAINS (json→[0] . name美元,”“1号篮子””)从json_test;   选择JSON_CONTAINS (json,’”1号篮子””,“[0]. name美元”)从json_test;   之前      

JSON_CONTAINS_PATH (json_doc>   选择JSON_CONTAINS_PATH (json,“一个”,“[0]. name美元”,[0]美元。test)从json_test;   之前      

第二个参数“1”表示只要有一个关键的存在就返回1,否则为0

        选择JSON_CONTAINS_PATH (json,“所有”,“[0]. name美元”,[0]美元。test)从json_test;   之前      

第二个参数的所有表示所有关键存在才返回1,否则为0

  

JSON_SET (json_doc路径,val[路径,val]…),插入或更新数据并返回结果

        选择JSON_SET (json, ' $ [0] . name ', ' 2号篮子”,“[0]美元。从json_test测试”、“测试”);   之前      

我们修改美元[0]. name的值,并添加一个键为测试值为测试的项

  

JSON_INSERT (json_doc路径,val[路径,val]…),插入数据并返回结果,但不替换现有值。

        选择JSON_INSERT (json, ' $ [0] . name ', ' 2号篮子”,“[0]美元。从json_test ext”、“扩展”);   之前      

这时美元[0]. name不会被更新,只会新增一个字段美元[0]. ext

  

JSON_REPLACE (json_doc路径,val[路径,val]…)替换现有值并返回结果

        选择JSON_REPLACE (json、“$ [0] . name”、“替换的)从json_test;   之前      

将[0]. name中美元的值替换成新值

  

JSON_REMOVE (json_doc、路径、路径]…),,删除数据并返回结果

        选择JSON_REMOVE (json, $ [0] . name)从json_test;   之前      

删除美元[0]. name这项数据

  

JSON_KEYS (json_doc[、路径])获取json文档中的所有键

        选择JSON_KEYS (json,[0]美元)从json_test;   之前      

获取美元[0]路径下的所有键

  

JSON_LENGTH (json_doc[、路径])获取json文档的长度

        选择JSON_LENGTH (json,[0]美元)从json_test;   之前      

获取美元[0]下的元素数量

  

JSON_EXTRACT (json_doc、路径、路径]…),返回json文档中的数据

        选择JSON_EXTRACT (json,[0]美元)从json_test;   选择JSON_EXTRACT (json, $ [0] . name)从json_test;   之前      

返回json文档指定路径下的数据

  

JSON_ARRAY([瓦尔(val)…]),创建json数组

        选择JSON_ARRAY(1, 2,真的,5.6,null,现在());   之前      

mysql5.7新增的json字段类型用法实例分析