SQL 实战:MySQL JSON 函数解析 – 处理非结构化数据

在现代应用中,非结构化数据如 JSON 格式广泛应用于存储复杂的配置信息、动态表单以及嵌套数据。MySQL 从 5.7 版本起正式支持 JSON 数据类型,允许开发者直接在数据库中存储和查询 JSON 格式的数据。

本文将介绍如何使用 MySQL 的 JSON 函数 处理复杂的嵌套 JSON 字段,解析和查询非结构化数据。


一、MySQL JSON 数据类型与函数概览

1. JSON 数据类型特点
  • 灵活性:JSON 可存储复杂的嵌套对象和数组,字段动态可变。
  • 自动校验:存储 JSON 时,MySQL 自动校验 JSON 格式,不合法的数据将拒绝写入。
  • 二进制存储:MySQL 以高效的二进制格式存储 JSON,查询性能优于字符串处理。

2. 常用 JSON 函数
函数 说明 示例
JSON_EXTRACT() 提取 JSON 字段中的特定路径数据 JSON_EXTRACT(config, '$.name')
JSON_UNQUOTE() 去除提取的 JSON 字符串的引号 JSON_UNQUOTE(JSON_EXTRACT(config, '$.name'))
JSON_SEARCH() 在 JSON 字段中搜索特定值,返回路径 JSON_SEARCH(config, 'one', 'admin')
JSON_CONTAINS() 检查 JSON 中是否包含指定的键值 JSON_CONTAINS(config, '{"role": "user"}')
JSON_KEYS() 获取 JSON 对象中的所有键 JSON_KEYS(config)
JSON_SET() 更新或添加 JSON 字段的某个路径 JSON_SET(config, '$.email', '[email protected]')
JSON_REMOVE() 删除 JSON 字段中指定路径的键值 JSON_REMOVE(config, '$.password')
JSON_ARRAY() 创建 JSON 数组 JSON_ARRAY('a', 'b', 'c')
JSON_OBJECT() 创建 JSON 对象 JSON_OBJECT('name', 'Alice')

二、实战案例:解析与查询 JSON 字段


案例 1:查询用户配置中包含特定属性的记录

你可能感兴趣的:(数据库,sql,mysql,json)