首页 > 数据库 >MySQL8版本之json_keys、json_object、json_overlaps、json_pretty

MySQL8版本之json_keys、json_object、json_overlaps、json_pretty

时间:2023-05-14 14:56:23浏览次数:33  
标签:overlaps object json pretty test array NULL

CREATE TABLE `test_json` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `age` int NOT NULL,
  `test_json_array` json NOT NULL,
  `test_json_object` json NOT NULL,
  `test_json_array_object` json NOT NULL,
  `custinfo` json DEFAULT NULL COMMENT 'json数据',
  PRIMARY KEY (`id`),
  KEY `test_json$list_modified` (`age`,(cast(json_extract(`test_json_array`,_utf8mb4'$[*]') as unsigned array)),`name`),
  KEY `json_more_value_index` ((cast(json_extract(`custinfo`,_utf8mb4'$.zipcode') as unsigned array)),`name`,`age`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

json_keys:获取json对象的key值组成的数组
json_object:创建一个json对象
json_overlaps:对比的俩个json有相同的键值对或者数组元素即可
json_pretty:格式化json,符合人类的阅读习惯
json_quote:将字符串引用为json值,换句话说就是把字符串处理成为带双引号的值

1、json_keys
获取json对象中的key值组成的数组

2、json_object
创建json对象,配合json_contains使用可以很好的进行查询

select * from test_json where json_contains(test_json_object, json_object('height', '175cm'));

3、json_overlaps
对比俩个json,如果有一个键值对或者数组元素则返回true,否则返回false

select * from test_json where json_overlaps(test_json_object, json_object('height', '175cm'));

总结:

标签:overlaps,object,json,pretty,test,array,NULL
From: https://www.cnblogs.com/jelly12345/p/17399303.html

相关文章

  • 获取compile_commands.json的方式
    CMake工程这个最简单,在CMakeLists.txt中加set(CMAKE_EXPORT_COMPILE_COMMANDSon),或者在cmake的命令中加-DCMAKE_EXPORT_COMPILE_COMMANDS.即可产生CMakefileMakefile借助compiledb程序可以生成compile_commands.json文件。compiledb-nmake-f/path/to/Makefile#......
  • 常用模块,time,random,json,os
    模块底层都是c语言写的模块的分类内置模块,不需要自己安装,直接拿过来用扩展模块,第三方模块,需要自己安装本地编辑器安装小白教程(forchange.cn)random随机数.random()不入参,求(0,1)之间的随机数,开区间.randint(a,b)求随机整数,闭区间[a,b].randrange(start,stop,step......
  • com-alibaba-fastjson转换json时默认将属性第一个字母转小写
    问题描述将实体类对象转为json字符串的时候,会将属性名首字母改为小写例如此出User队形有两个属性,USER_NAME和USER_AGE,首字母均为大写将实体类对象转为JSON后首字母全都转换为了小写解决方法这是因为阿里巴巴的fastjson框架默认使用了JavaBean规范中的命名约定,将属性名首字......
  • Json序列化对象后,使用Lombok后属性xAxis大写变成小写xaxis解决方法
    一、问题描述最近在开发后端接口时,发现返回结构中,一个字段大小写转化有问题。lombok版本:1.18.14VO对象如下,字段为echarts趋势图组件。预期返回xAxis,实际返回xaxis@DatapublicclassULineBarVO{/***X轴信息*/privateULineBarDataVOxAxis;/*......
  • fastjson中$ref的坑
    相信不少人都遇到过,用fastjson进行序列化时会遇到属性出现$ref的情况,本质是fastjson在处理对象引用时默认不展开,需要自己指定序列化参数。写个DEMO演示一下:1JSONObjectjson=newJSONObject();2JSONObjectprop=newJSONObject();3prop.put("name","test");4pro......
  • JsonObject相关操作
    一:String转JsonObject:JSONObjectjSONObject=JSONObject.parseObject(string);二:获取JsonObject中的value值:System.out.println("111111111"+jSONObject.getJSONObject("Result").getJSONObject("Result").get("FLinkMan"));三:Js......
  • bat中传递JSON参数时,由于JSON包含一些特殊字符如引号、反斜杠等,需要对JSON字符串进行
    在bat中传递JSON参数时,由于JSON包含一些特殊字符如引号、反斜杠等,这些字符可能会导致命令行解释器解析出错。为了避免这些问题,通常建议对JSON字符串进行一些转义处理。具体转义规则如下:对每个双引号(")进行转义,变成"。对每个反斜杠(\)进行转义,变成\。当你传递一个JSON字符串......
  • 如何将bash变量传递给JSON
    我正在尝试编写示例脚本,在其中生成诸如"student-101...student-160"之类的名称。我需要发布JSON数据,当我这样做时,出现JSON解析错误。这是我的脚本:123456789name="student-10"for i in {1..1}do   r_name=$name$i   echo $r_name  curl -i -H 'Au......
  • json在前端的使用
    调用接口后一般传递的都是json格式的数据,这个json格式的数据吗可能会有多层嵌套,如何获取这个最内层的嵌套value值便是关键。而数据解析放在前端便更加的简单,可以像数组一样使用但是需要解决以下问题:1.数据在后端的时候已经是json格式的object,如何异步发送这个json数据到前端(最新......
  • inputstream转json
    inputstream是一个Java中的输入流,它允许从源读取数据。如果要将inputstream转换为JSON,需要使用相应的解析器,例如GSON或Jackson。以下是使用GSON的示例代码:InputStreaminputStream=...;Gsongson=newGson();JsonReaderreader=newJsonReader(newInputStreamReader(in......