boxmoe_header_banner_img

Hello! 欢迎来到悠悠畅享网!

文章导读

json函数在mysql中如何操作


avatar
作者 2025年10月13日 6

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数组

示例:

json函数在mysql中如何操作

Find JSON Path Online

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

json函数在mysql中如何操作30

查看详情 json函数在mysql中如何操作

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]表示数组元素。不复杂但容易忽略细节。



评论(已关闭)

评论已关闭

text=ZqhQzanResources