json函数在mysql中如何操作

来源:这里教程网 时间:2026-02-28 20:12:31 作者:

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

插入和创建JSON数据

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

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

示例:

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

相关推荐