MySQL8版本之json_keysjson_objectjson_overlapsjson_pretty

Posted 郭慕荣博客园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL8版本之json_keysjson_objectjson_overlapsjson_pretty相关的知识,希望对你有一定的参考价值。

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\'));

总结:

MYSQL数据库篇之查看当前数据库的版本编号

在mysql服务端里面查看MySQL数据库的编号

select version();

在这里插入图片描述

利用DOS命令查看MySQL数据库的编号

mysql --version
或者
mysql -V

在这里插入图片描述

以上是关于MySQL8版本之json_keysjson_objectjson_overlapsjson_pretty的主要内容,如果未能解决你的问题,请参考以下文章

MySQL8版本之json_keysjson_objectjson_overlapsjson_pretty

MYSQL8创建新用户报错:You have an error in your SQL syntax;check...

MYSQL8创建新用户报错:You have an error in your SQL syntax;check...

使用Navicat远程连接MySQL8.0+版本

MySQL8安装及使用当中的一些注意事项

MySQL8.0版本选型建议