Mysql内储存JSON字符串根据条件进行查询

yizhihongxing

MySQL中可以使用JSON值类型存储JSON格式的数据。而且MySQL也提供了一系列的JSON函数和操作符来方便地处理JSON值类型的数据。以下是使用MySQL内储存JSON字符串根据条件进行查询的步骤和实例说明。

步骤

  1. 创建一个表格

在MySQL数据库中,我们可以用如下语句创建一个表格:

sql
CREATE TABLE `students` (
`id` INT(10) unsigned NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`age` INT(10) unsigned NOT NULL,
`info` JSON NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

这个表格包含4个字段,其中info是JSON类型字段。

  1. 插入数据

在表格中插入一些数据(以下示例数据仅供演示使用):

sql
INSERT INTO `students` (`name`, `age`, `info`)
VALUES
('John', 20, '{"address": "New York", "courses": ["Math", "English"]}' ),
('Tom', 18, '{"address": "Los Angeles", "courses": ["Computer Science", "Chemistry", "Geography"]}' ),
('Lucy', 21, '{"address": "San Francisco", "courses": ["Physics", "History"]}' );

注意:JSON值要用双引号括起来。

  1. 查询数据

查询JSON字段的数据使用->操作符和->>操作符。

  • ->:返回一个JSON对象或一个JSON数组中指定元素的数值
  • ->>:返回一个JSON对象或一个JSON数组中指定元素的文本值

以下是一些示例代码:

  1. 查询address为"New York"的学生信息:

    sql
    SELECT * FROM `students` WHERE `info` ->> '$.address' = 'New York';

    上述代码中,->>把JSON对象中的"address"字段返回为一个文本值,'$'表示根节点。

  2. 查询所有修习了"Math"课程的学生信息:

    sql
    SELECT * FROM `students` WHERE `info` -> '$.courses' LIKE '%Math%';

    上述代码用LIKE操作符查询"Math"是否出现在JSON数组中的"courses"字段里。

示例说明

上述代码的运行结果:

id name age info
1 John 20 {"address": "New York", "courses": ["Math", "English"]}
id name age info
2 Tom 18 {"address": "Los Angeles", "courses": ["Computer Science", "Chemistry", "Geography"]}

第一个结果中的info字段中有"address": "New York""courses": ["Math", "English"]两个属性。而第二个结果中的info字段中有"address": "Los Angeles""courses": ["Computer Science", "Chemistry", "Geography"],但因为其"courses"属性中没有"Math",所以没有被查询出来。

第二个示例中的运行结果:

id name age info
1 John 20 {"address": "New York", "courses": ["Math", "English"]}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql内储存JSON字符串根据条件进行查询 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JavaScript从数组的indexOf()深入之Object的Property机制

    JavaScript从数组的indexOf()深入之Object的Property机制攻略 什么是Property机制 在JavaScript中,Object是一种特殊的数据类型,它使用了一种被称为Property的机制来存储和访问数据。每个Object都有一组Property,每个Property包括一个名称和一个值。值可以是任何类型的JavaScript…

    JavaScript 2023年5月28日
    00
  • 使用JS操作文件(FileReader读取–node的fs)

    使用JS操作文件可以通过浏览器的FileReader API或Node.js的fs模块来实现。下面分别介绍这两种方式的实现方法。 使用FileReader读取文件 步骤 通过<input type=”file”>元素选择文件,获取文件的File对象 利用FileReader对象读取文件内容 将读取的文件内容显示到页面上 代码示例 <!DOC…

    JavaScript 2023年5月27日
    00
  • JavaScript哪些场景不能使用箭头函数

    JavaScript中的箭头函数是ES6(ECMAScript 2015)新增的语法特性,它提供了一种简洁的定义函数的方式,可以在函数体内省略this、arguments、super和new.target等关键字的操作。但是,在某些场景下,使用箭头函数可能会导致错误或意想不到的行为,因此需要注意哪些情况下不能使用箭头函数。以下是一些不能使用箭头函数的场景: …

    JavaScript 2023年5月28日
    00
  • php+ajax+json 详解及实例代码

    下面是关于PHP+AJAX+JSON的详细讲解及实例代码的攻略。 PHP+AJAX+JSON 详解 什么是AJAX AJAX全称为Asynchronons JavaScript and XML,是基于前端技术的一种异步交互方式。在AJAX出现之前,前端页面与服务端的交互方式主要是通过页面跳转、表单提交等方式。而AJAX则可以使得前端页面在不进行整个页面刷新的…

    JavaScript 2023年5月27日
    00
  • JavaScript代码异常监控实现过程详解

    下面我将详细讲解“JavaScript代码异常监控实现过程详解”的完整攻略,包含以下内容: 什么是JavaScript代码异常监控? JavaScript代码异常监控是指对JavaScript代码运行过程中可能出现的错误进行实时捕获,并对其进行分析和追踪,以便及时发现和解决问题,保证网站的稳定性和可靠性。 实现过程 要实现JavaScript代码异常监控,主…

    JavaScript 2023年5月28日
    00
  • JavaScript中的toLocaleDateString()方法使用简介

    当我们需要在 JavaScript 中将日期转换为特定格式的字符串时,可以使用 toLocaleDateString() 方法。 使用语法 toLocaleDateString() 方法接受两个可选参数:locales 和 options。 date.toLocaleDateString([locales[, options]]); 其中,locales 参…

    JavaScript 2023年6月10日
    00
  • javascript中搜索数组的四种方法示例详解

    JavaScript中搜索数组的四种方法示例详解 在JavaScript中,数组是最常见的数据类型之一,我们经常需要在这些数组中查找某个特定元素。本文将详细介绍JavaScript中搜索数组的四种方法。这些方法都侧重于根据数组元素的值来查找指定的元素。 1. indexOf()方法 indexOf()方法是JavaScript中一个内置的数组方法,用于查找指…

    JavaScript 2023年5月27日
    00
  • JavaScript代码应该放在HTML代码哪个位置比较好?

    当我们编写JavaScript代码时,应该考虑将其放在HTML中的哪个位置。这样可以提高网站性能、可维护性和可靠性。 一般来说,可以将JavaScript代码放在HTML文档的头部或尾部,或者在文档中间使用异步加载。下面分别介绍这三种放置JavaScript代码的方式。 1.头部 将JavaScript代码放在头部,可以确保所有代码都被下载和解释,但是可能会…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部