mysql json 数据操作

MySQL 支持 JSON 数据类型,并提供了多种函数来查询和操作 JSON 数据。以下是一些常用的 JSON 查询示例:

1. 创建包含 JSON 的表

首先,创建一个包含 JSON 列的表:

sql 复制代码
CREATE TABLE my_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    data JSON
);

2. 插入 JSON 数据

插入 JSON 数据到表中:

sql 复制代码
INSERT INTO my_table (data) VALUES
('{"name": "Alice", "age": 30, "city": "New York"}'),
('{"name": "Bob", "age": 25, "city": "Los Angeles"}');

3. 查询 JSON 数据

3.1 使用 JSON_EXTRACT

提取 JSON 字段的特定值:

sql 复制代码
SELECT JSON_EXTRACT(data, '$.name') AS name FROM my_table;
3.2 使用 -> 操作符

也可以使用简化的 -> 操作符来提取值:

sql 复制代码
SELECT data->'$.name' AS name FROM my_table;
3.3 使用 JSON_UNQUOTE

如果你想去掉引号,可以结合使用 JSON_UNQUOTE

sql 复制代码
SELECT JSON_UNQUOTE(data->'$.name') AS name FROM my_table;

4. 查询包含特定值的行

使用 JSON_CONTAINS 检查 JSON 中是否包含特定值:

sql 复制代码
SELECT * FROM my_table
WHERE JSON_CONTAINS(data, '"Alice"', '$.name');

5. 更新 JSON 数据

更新 JSON 中的特定字段:

sql 复制代码
UPDATE my_table
SET data = JSON_SET(data, '$.age', 31)
WHERE JSON_UNQUOTE(data->'$.name') = 'Alice';

6. 删除 JSON 中的字段

删除 JSON 中的特定字段:

sql 复制代码
UPDATE my_table
SET data = JSON_REMOVE(data, '$.city')
WHERE JSON_UNQUOTE(data->'$.name') = 'Bob';

7. 查询 JSON 数组

如果 JSON 数据是数组,可以使用 JSON_ARRAYJSON_CONTAINS

sql 复制代码
INSERT INTO my_table (data) VALUES
('{"name": "Charlie", "hobbies": ["reading", "traveling"]}');

SELECT * FROM my_table
WHERE JSON_CONTAINS(data->'$.hobbies', '"reading"');

总结

MySQL 的 JSON 查询功能非常强大,允许灵活地存储和操作半结构化数据。如果你有特定的场景或问题,请告诉我,我可以提供更详细的帮助!

相关推荐
cfm_29143 分钟前
Redis数据安全性解析
数据库·redis·缓存
DIY源码阁10 分钟前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
NiceCloud喜云2 小时前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书
辞忧九千七2 小时前
Redis 单机一主二从主从复制完整搭建指南
数据库·redis·缓存
lzhdim2 小时前
SQL 入门 16:SQL 事务隔离级别与死锁解析(易懂)
数据库·sql
海兰2 小时前
Kibana Dashboard as Code:Elastic 9.4 如何用 Terraform 和类型化 API 终结“JSON 垃圾袋“
云原生·json·terraform
AI 小老六3 小时前
Claude Code 如何压缩上下文:Microcompact、Prompt Cache 与 cache_edits 工程拆解
数据库·人工智能·ai·语言模型·架构·系统架构
Chasing__Dreams3 小时前
Redis--基础知识点--32--redis底层存储结构
数据库·redis·缓存
不总是3 小时前
[2026最新] Windows 免安装版 MySQL 8 详细安装配置教程(ZIP 压缩包版)
数据库·windows·mysql
tedcloud1233 小时前
DBX部署教程:打造支持AI SQL助手的数据库管理环境
数据库·人工智能·sql