热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL5.7对json的支持

1.创建带有json字段的表CREATETABLE`article`(`id

1.创建带有json字段的表

CREATE TABLE `article` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
`tags` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

2.插入数据

插入一条带有 JSON 内容的数据,执行 insert 语句:

INSERT INTO `article` (`title`, `tags`)
VALUES (
'体验 Mysql JSON',
'["Mysql", "Database"]'
);

这里插入的是一个 JOSN 数组 [“Mysql”, “Database”]

查询操作:

1.查找带有标签”Mysql”的所有文章

SELECT * FROM `article` WHERE JSON_CONTAINS(tags, '["Mysql"]');

MySQL5.7对json的支持 - 文章图片

2.查找标签中以”Data”开头的文章

SELECT
*
FROM
`article`
WHERE
JSON_SEARCH( tags, 'one', 'Data%' ) IS NOT NULL;

MySQL5.7对json的支持 - 文章图片

1.要查找的文档

2.查找的范围,有两个选项,'one' 查找第一个符合条件的,'all'查找所有符合条件的

3.查找的条件

3.JSON Path:定位文档的目标字段

SELECT JSON_EXTRACT( '{"id": 1, "name": "mysql"}', '$.name' );

MySQL5.7对json的支持 - 文章图片

JSON_EXTRACT() 是JSON提取函数,$.name 就是一个 JSON path,表示定位文档的 name 字段 

JSON path 是以 $ 开头,下面看几个更多的示例

select JSON_EXTRACT('{ "num" : 123,"arr" : [ 1, 2 ],"obj" : { "a" : 3, "b" : 4 } }', '$.num');

select JSON_EXTRACT('{ "num" : 123,"arr" : [ 1, 2 ],"obj" : { "a" : 3, "b" : 4 } }', '$.arr');
select JSON_EXTRACT('{ "num" : 123,"arr" : [ 1, 2 ],"obj" : { "a" : 3, "b" : 4 } }', '$.arr[0]');
select JSON_EXTRACT('{ "num" : 123,"arr" : [ 1, 2 ],"obj" : { "a" : 3, "b" : 4 } }', '$.arr[1]');
select JSON_EXTRACT('{ "num" : 123,"arr" : [ 1, 2 ],"obj" : { "a" : 3, "b" : 4 } }', '$.obj.a');
select JSON_EXTRACT('{ "num" : 123,"arr" : [ 1, 2 ],"obj" : { "a" : 3, "b" : 4 } }', '$.obj.b');
select JSON_EXTRACT('{ "num" : 123,"arr" : [ 1, 2 ],"obj" : { "a" : 3, "b" : 4 } }', '$**.b');

MySQL5.7对json的支持 - 文章图片

MySQL5.7对json的支持 - 文章图片 

MySQL5.7对json的支持 - 文章图片 

MySQL5.7对json的支持 - 文章图片 

MySQL5.7对json的支持 - 文章图片 

MySQL5.7对json的支持 - 文章图片 

MySQL5.7对json的支持 - 文章图片 

JSON Path查询

SELECT
tags->"$[0]" as 'tag',
tags->"$[1]" as 'tag2'
FROM `article`;

MySQL5.7对json的支持 - 文章图片



推荐阅读
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • MySQL外键1对多问题的解决方法及实例
    本文介绍了解决MySQL外键1对多问题的方法,通过准备数据、创建表和设置外键关联等步骤,实现了用户分组和插入数据的功能。详细介绍了数据准备的过程和外键关联的设置,以及插入数据的示例。 ... [详细]
author-avatar
金婉山_461
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有