json函数在mysql中如何操作

P粉602998670
发布: 2025-10-12 20:46:01
原创
880人浏览过
MySQL从5.7起支持JSON类型,提供JSON_OBJECT、JSON_ARRAY插入数据,JSON_EXTRACT和->、->>查询,JSON_SET、JSON_INSERT、JSON_REPLACE、JSON_REMOVE修改,JSON_VALID、JSON_CONTAINS、JSON_OVERLAPS验证与判断,路径以$开头,支持对象和数组操作。

json函数在mysql中如何操作

MySQL从5.7版本开始支持JSON数据类型,提供了丰富的函数来操作JSON字段。这些函数可以帮助你创建、查询、修改和验证JSON数据。下面介绍常用的JSON函数及其用法。

插入和创建JSON数据

你可以使用JSON_OBJECTJSON_ARRAY或直接插入合法的JSON字符串。

  • JSON_OBJECT(key, value, ...):将键值对转换为JSON对象。
  • JSON_ARRAY(val1, val2, ...):将值转换为JSON数组。

示例:

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online30
查看详情 Find JSON Path Online
INSERT INTO users (info) VALUES (JSON_OBJECT('name', '张三', 'age', 25));
INSERT INTO tags (data) VALUES (JSON_ARRAY('mysql', 'json', 'database'));

查询JSON字段中的值

使用JSON_EXTRACT或 -> 和 ->> 操作符提取数据。

  • JSON_EXTRACT(json_col, path):根据路径提取值,返回带引号的JSON格式。
  • col->"$.path":等同于JSON_EXTRACT,返回JSON格式。
  • col->>"$.path":返回去引号的纯文本值。

示例:

SELECT JSON_EXTRACT(info, '$.name') FROM users;
SELECT info->"$.age" AS age FROM users;
SELECT info->>"$.name" AS name FROM users;

修改JSON数据

使用JSON_SETJSON_INSERTJSON_REPLACEJSON_REMOVE等函数更新JSON内容。

  • JSON_SET:设置值,如果键存在则更新,否则添加。
  • JSON_INSERT:插入值,仅当键不存在时生效。
  • JSON_REPLACE:替换值,仅当键存在时生效。
  • JSON_REMOVE:删除指定路径的元素。

示例:

UPDATE users SET info = JSON_SET(info, '$.age', 26, '$.city', '北京');
UPDATE users SET info = JSON_REMOVE(info, '$.temp_flag');

判断和验证JSON

使用以下函数确保数据合法性或进行条件判断。

  • JSON_VALID(json_string):检查字符串是否为有效JSON,返回1或0。
  • JSON_CONTAINS(json_col, target, path):判断JSON是否包含指定值。
  • JSON_OVERLAPS(a, b):判断两个JSON数组是否有相同元素。

示例:

SELECT * FROM users WHERE JSON_CONTAINS(info, '"北京"', '$.city');
SELECT JSON_VALID('{"name": "test"}'); -- 返回1

基本上就这些常用操作。掌握这些函数后,就能在MySQL中灵活处理JSON数据了。注意路径表达式以$开头,.key表示对象属性,[index]表示数组元素。不复杂但容易忽略细节。

以上就是json函数在mysql中如何操作的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号