本文实例讲述了mysql5.7新增的json字段类型用法。分享给大家供大家参考,具体如下:
一,我们先创建一个表,准备点数据
创建表“json_test”( “id”int(11)无符号NOT NULL AUTO_INCREMENT评论“id”, json的json默认空评论的json数据的, 主键(“id”) )引擎=InnoDB的默认字符集=utf8mb4; >之前
二、检索json列的字段
通过使用→或→祝辞运算符检索json列的字段
选择id, json→美元[0]. items [0] . name”从json_test; >之前
选择id, json→在“美元[0]. items [0] . name”从json_test; >之前
使用→和→祝辞的区别是结果用了引号包裹。
三,处理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字段类型用法实例分析