新闻中心
mysql数据库中如何使用JSON数据类型
MySQL从5.7起支持JSON类型,可便捷存储配置与动态字段。1. 创建含JSON列的表;2. 插入合法JSON数据;3. 用JSON_EXTRACT或->提取值;4. 使用JSON_SET等修改字段;5. 支持JSON路径条件查询;6. 可建虚拟列加索引优化性能。

MySQL从5.7版本开始支持JSON数据类型,这让在数据库中存储和操作JSON格式的数据变得非常方便。使用JSON类型可以避免频繁的表结构变更,尤其适合存储配置、动态字段或嵌套信息。
1. 创建包含JSON字段的表
在建表时可以直接定义JSON类型的列:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
info JSON
);
上面的info字段就可以存储合法的JSON数据,比如对象、数组、字符串、数字等。
2. 插入JSON数据
插入时可以直接写JSON格式的字符串,MySQL会自动校验其合法性:
INSERT INTO users (name, info) VALUES
('Alice', '{"age": 28, "city": "Beijing", "hobbies": ["reading", "swimming"]}'),
('Bob', '{"age": 32, "city": "Shanghai", "is_active": true}');
如果JSON格式不合法,比如引号不匹配或语法错误,MySQL会报错拒绝插入。
3. 查询JSON字段内容
MySQL提供了多种函数来提取JSON中的值:
- JSON_EXTRACT(json_col, path):根据路径提取值
- ->:等价于JSON_EXTRACT,语法更简洁
- ->>:提取并去掉引号(适用于字符串)
示例:
-- 提取年龄 SELECT name, JSON_EXTRACT(info, '$.age') AS age FROM users; <p>-- 使用 -> 简写 SELECT name, info->'$.city' AS city FROM users;</p><p>-- 提取数组第二个爱好(索引从0开始) SELECT name, info->'$.hobbies[1]' AS hobby FROM users;</p><p>-- 提取字符串值时不带引号 SELECT name, info->>'$.city' AS city FROM users;</p>
4. 修改JSON字段
使用JSON_SET、JSON_REPLACE、JSON_INSERT等函数可以更新部分字段:
SmartB2B行业电子商务
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板
0
查看详情
- JSON_SET:设置值(存在则修改,不存在则添加)
- JSON_REPLACE:仅替换已有字段
- JSON_REMOVE:删除指定路径的字段
示例:
-- 更新城市并添加新字段 UPDATE users SET info = JSON_SET(info, '$.city', 'Guangzhou', '$.level', 3) WHERE name = 'Alice'; <p>-- 删除某个字段 UPDATE users SET info = JSON_REMOVE(info, '$.is_active') WHERE name = 'Bob';</p>
5. 在JSON字段上查询条件
可以用JSON路径表达式作为查询条件:
-- 查找年龄大于30的用户 SELECT * FROM users WHERE info->'$.age' > 30; <p>-- 查找爱好包含'swimming'的用户(需用JSON_CONTAINS) SELECT * FROM users WHERE JSON_CONTAINS(info->'$.hobbies', '"swimming"');</p>
6. 建立虚拟列和索引优化查询
由于不能直接对JSON字段建索引,但可以通过创建虚拟列并为其加索引提升性能:
ALTER TABLE users ADD COLUMN city_v AS (info->>'$.city') STORED; <p>CREATE INDEX idx_city ON users(city_v);</p>
这样在查询city字段时就能利用索引加速。
基本上就这些。合理使用JSON类型能提升灵活性,但复杂查询或高频检索场景建议还是拆分到常规字段。注意保持JSON结构清晰,避免过度嵌套。
以上就是mysql数据库中如何使用JSON数据类型的详细内容,更多请关注其它相关文章!
# 全攻略
# 渭南网站建设与管理职责
# 媒体软文推广网站
# 网站站建设建设中页中页
# 新余网站建设推广开发
# 焦作官网网站推广软件
# 简述seo的作用
# 文山营销推广哪家好做呢
# seo编辑的工资
# 广州矩阵seo项目招聘
# 自己做网站升seo
# 已有
# 操作步骤
# mysql
# 可以直接
# 适用于
# 多个
# 如何使用
# 数据库中
# 镜像
# 离线
# red
# ai
# json
# js
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
漫蛙漫画网页端入口 漫蛙2官方正版漫画站点
树莓派传感器触发:通过Twilio API发送WhatsApp消息教程
如何提高微信支付的安全性_微信支付安全防护与设置建议
如何修改开机登录密码_Windows账户安全设置超详细教程【必学】
MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏
AI泡沫首次被“刺破”:GPU十年都无法存活!
iCloud登录入口网页版 苹果iCloud官网登录
C++如何实现一个智能指针_手动实现C++ shared_ptr的引用计数功能
QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问
AO3中文官网链接_AO3网页版稳定镜像站
qq游戏跨平台入口_qq游戏多设备同步登录
PHP中获取MongoDB服务器运行时间(Uptime)的专业指南
漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站
汽车之家官方网站官网入口_汽车之家网页版直接进入
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池
Android Studio计算器C键功能异常排查与修复教程
Kafka Streams中基于消息头条件过滤消息的实现指南
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
火锅吃太多会怎样 火锅吃太多会上火吗
韩小圈电脑版在线入口_网页版免费登录地址
Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】
不同用户不同价格! 索尼开启账户个性化定价测试
现代化 SciPy 一维插值:interp1d 的替代方案与最佳实践
怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】
AngularJS $http POST请求数据传递与Go后端接收实践
ACG动漫手机版官网入口 手机ACG动漫APP在线观看正版
如何在Python中使用Optional类型处理可变对象并避免Pylint警告
德邦快递查询平台 德邦快递物流信息查询入口
谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法
抖音DOU+怎么投最有效 抖音付费推广的ROI提升技巧
谷歌邮箱网页版官方页面入口 谷歌邮箱网页端快速访问
押井守高度称赞《辐射4》:玩了八年都停不下来!
J*aScript中在Map循环中检测并处理空数组元素
动漫岛观看全网网 动漫岛在线正版动漫入口
AO3官网镜像链接 Archive of Our Own同人文在线浏览
将JSON对象数组转置为键值对列表的实用指南
动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道
蛙漫移动版在线看 蛙漫手机浏览器直达入口
Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】
Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址
《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法
地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站
Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录
一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证
微信语音通话掉线如何解决 微信语音通话稳定优化方法
小红书网页版入口链接分享 小红书官网直接进
网易大神怎么保存别人动态的图片_网易大神动态图片保存方法
电脑IP地址怎么查 查看本机IP地址的几种方法


2025-11-10
浏览次数:次
返回列表