MySQL中可以使用JSON值类型存储JSON格式的数据。而且MySQL也提供了一系列的JSON函数和操作符来方便地处理JSON值类型的数据。以下是使用MySQL内储存JSON字符串根据条件进行查询的步骤和实例说明。
MySQL中可以使用JSON值类型存储JSON格式的数据。而且MySQL也提供了一系列的JSON函数和操作符来方便地处理JSON值类型的数据。以下是使用MySQL内储存JSON字符串根据条件进行查询的步骤和实例说明。
步骤
- 创建一个表格
在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类型字段。
- 插入数据
在表格中插入一些数据(以下示例数据仅供演示使用):
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值要用双引号括起来。
- 查询数据
查询JSON字段的数据使用->
操作符和->>
操作符。
->
:返回一个JSON对象或一个JSON数组中指定元素的数值->>
:返回一个JSON对象或一个JSON数组中指定元素的文本值
以下是一些示例代码:
-
查询address为"New York"的学生信息:
sql
SELECT * FROM `students` WHERE `info` ->> '$.address' = 'New York';上述代码中,
->>
把JSON对象中的"address"
字段返回为一个文本值,'$'
表示根节点。 -
查询所有修习了"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字符串根据条件进行查询
- JavaScript图表插件highcharts详解 2024-01-03
- vue 使用$refs获取表单内容及v-model双向数据绑定 2023-10-08
- 利用Blob进行文件上传的完整步骤 2023-12-23
- JavaScript实现打砖块游戏 2024-01-14
- JavaScript数组扁平转树形结构数据(Tree)的实现 2022-10-21
- php – 我应该在我的数据库中使用哪种类型的html文本? 2023-10-25
- Javascript 实现复制(Copy)动作方法大全 2023-12-23
- 在HTML 5 / Javascript中批量插入客户端数据库(WEB SQL) 2023-10-26
- css -webkit-line-clamp WebKit的CSS扩展(WebKit是私有属性) 2024-01-05
- asp错误 '80040e21' 多步 OLE DB 操作产生错误 2023-07-10