欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

MySQL JSON 数据类型的使用技巧

时间:2026年08月12日 04:46:50 浏览:1

JSON 类型优势


MySQL 5.7+ 支持原生 JSON 类型,可对 JSON 字段进行索引和高效查询,非常适合存储灵活的结构化数据。


创建与插入


CREATE TABLE user_ext (
id INT PRIMARY KEY,
info JSON
);

INSERT INTO user_ext VALUES (1, '{"name": "张三", "age": 30, "tags": ["vip", "developer"]}');

查询 JSON 字段


-- 提取字段值
SELECT id, JSON_EXTRACT(info, '$.name') AS name FROM user_ext;
-- 简写:
SELECT id, info->'$.name' AS name FROM user_ext;

-- 提取数组元素
SELECT id, info->'$.tags[0]' FROM user_ext;

-- 条件查询(需要虚拟列或函数索引)
SELECT * FROM user_ext WHERE JSON_EXTRACT(info, '$.age') > 25;

索引优化


MySQL 8.0 支持函数索引:


CREATE INDEX idx_age ON user_ext ((CAST(info->'$.age' AS UNSIGNED)));

更新 JSON


-- 新增/修改字段
UPDATE user_ext SET info = JSON_SET(info, '$.city', '北京') WHERE id = 1;

-- 删除字段
UPDATE user_ext SET info = JSON_REMOVE(info, '$.age') WHERE id = 1;

JSON 类型让关系型数据库也能灵活应对多变的需求。