🗣 Wd提问: MySQL5.7 JSON支持
🤖 Ai回答: MySQL 5.7 支持 JSON 数据类型和相关的 JSON 函数,这是 MySQL 5.7 的一个重要特性,使得在关系型数据库中存储和操作 JSON 数据成为可能。以下是关于 MySQL 5.7 JSON 支持的关键点:
✅ 1、JSON 数据类型支持
从 MySQL 5.7 开始,引入了 `JSON` 数据类型,允许你将 JSON 格式的字符串存储在表列中。
sql
CREATE TABLE users (
id INT PRIMARY KEY,
profile JSON
);
✅ 2、常用 JSON 函数(MySQL 5.7)
MySQL 5.7 提供了一系列 JSON 函数用于解析、提取、修改和验证 JSON 数据:
🔹 JSON 插入与查询
sql
INSERT INTO users (id, profile) VALUES (1, '{name: Alice, age: 30}');
SELECT profile-'$.name' AS name FROM users;
输出: Alice
🔹 JSON 提取函数
`JSON_EXTRACT(json_col, path)` —— 提取 JSON 字段值。
`JSON_UNQUOTE(JSON_EXTRACT(...))` —— 去除引号。
`-` —— 简写形式(仅适用于 MySQL 5.7+)。
🔹 JSON 修改函数
`JSON_SET(json_doc, path, value)`
`JSON_REPLACE(json_doc, path, value)`
`JSON_REMOVE(json_doc, path)`
🔹 JSON 验证函数
`JSON_VALID(json_string)` —— 检查是否为合法 JSON。
`JSON_TYPE(json_string)` —— 返回 JSON 类型(如 STRING, OBJECT, ARRAY 等)。
🔹 其他实用函数
`JSON_LENGTH(json_string)` —— 获取对象或数组长度。
`JSON_KEYS(json_object)` —— 获取对象的键列表。
`JSON_SEARCH(json_string, 'one', 'value')` —— 在 JSON 中搜索值。
✅ 3、JSON 路径表达式(Path Expressions)
路径使用 `$.key` 或 `$.array[index]` 格式:
sql
提取嵌套字段
SELECT profile-'$.address.city' FROM users;
提取数组元素
SELECT profile-'$[0].name' FROM users;
✅ 4、注意事项
MySQL 5.7 的 JSON 支持是基础版本,功能较新版本(如 8.0)少。
不支持 JSON_TABLE()、JSON_ARRAYAGG() 等高级聚合函数(这些在 MySQL 8.0 中引入)。
不支持 JSON_MERGE_PATCH()、JSON_MERGE_PRESERVE()。
JSON 函数对 NULL 值处理严格,若路径不存在,会返回 NULL。
`JSON_VALID()` 和 `JSON_TYPE()` 是 5.7 引入的重要函数。
✅ 示例:完整操作
sql
创建表
CREATE TABLE products (
id INT PRIMARY KEY,
specs JSON
);
插入数据
INSERT INTO products (id, specs) VALUES
(1, '{color: red, size: large}'),
(2, '{color: blue, size: small, tags: [new, sale]}' );
查询颜色
SELECT id, specs-'$.color' AS color FROM products;
查找 tags 数组中的某个值
SELECT id, JSON_SEARCH(specs, 'one', 'new') AS tag_location FROM products;
删除指定 key
UPDATE products SET specs = JSON_REMOVE(specs, '$.size') WHERE id = 1;
✅ 总结
MySQL 5.7 对 JSON 的支持已经非常实用,尤其适合需要半结构化数据存储的场景(如配置、日志、API 数据等)。虽然相比 MySQL 8.0 功能有限,但在许多实际项目中仍能胜任需求。
如果你正在使用 MySQL 5.7 并希望充分利用 JSON 功能,请确保熟悉其内置函数,并注意路径语法和空值处理。
📌 提示:如果项目允许升级,建议迁移到 MySQL 8.0,以获得更丰富的 JSON 支持和性能优化。
📣 商家广告:





0
IP地址: 242.201.27.42
搜索次数: 0
提问时间: 2025-11-12 20:37:07
🛒 域名购买:
jqe.com.cn
pcks.cn
qj.gs
fl.gs
tc.gs
887.net.cn
191.net.cn
327.net.cn
xhkt.net
wc.chat
❓️ 热门提问:
linux服务器远程管理工具
bootstrap做的网页
php 云服务器
机房墙彩钢板
vps的意思
绍兴vps
买个域名多少钱
ip海动态版
百度搜索引擎优化
3位域名购买
豌豆Ai站群搜索引擎系统
🌐 域名评估:
kimi.homes
oo.ah.cn
znfd.cn
byd.qh.cn
catl.xj.cn
kimi.mba
hkhe.cn
xiht.cn
su.ln.cn
stih.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
广州订购月饼
北京网络seo
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。