Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql解析json

作者:偶然\寥寂り   发布日期:2026-04-07   浏览:32

-- 解析 JSON 数据示例

-- 假设我们有一个包含 JSON 数据的表 `users`,其中有一列 `info` 存储了用户的额外信息。
-- 我们想要从这个 JSON 字段中提取特定的信息。

-- 创建示例表
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    info JSON
);

-- 插入示例数据
INSERT INTO users (id, name, info) VALUES
(1, 'Alice', '{"age": 30, "city": "New York", "hobbies": ["reading", "traveling"]}'),
(2, 'Bob', '{"age": 25, "city": "Los Angeles", "hobbies": ["gaming", "music"]}');

-- 从 JSON 字段中提取单个值
-- 提取用户的年龄
SELECT id, name, info->>'$.age' AS age FROM users;

-- 提取用户的居住城市
SELECT id, name, info->>'$.city' AS city FROM users;

-- 从 JSON 数组中提取元素
-- 提取用户的第一个爱好
SELECT id, name, info->>'$.hobbies[0]' AS first_hobby FROM users;

-- 使用 JSON 函数进行更复杂的操作
-- 检查 JSON 中是否包含某个键
SELECT id, name, JSON_CONTAINS_PATH(info, 'one', '$.age') AS has_age_key FROM users;

-- 更新 JSON 字段中的值
UPDATE users SET info = JSON_SET(info, '$.age', 31) WHERE id = 1;

-- 删除 JSON 字段中的键
UPDATE users SET info = JSON_REMOVE(info, '$.hobbies') WHERE id = 2;

解释说明:

  1. 创建表和插入数据:首先创建一个包含 JSON 字段的表,并插入一些示例数据。
  2. 提取单个值:使用 ->> 操作符从 JSON 字段中提取标量值(如年龄和城市)。
  3. 提取数组元素:从 JSON 数组中提取特定元素(如第一个爱好)。
  4. JSON 函数:使用 JSON_CONTAINS_PATH 检查 JSON 中是否存在某个键,使用 JSON_SETJSON_REMOVE 更新或删除 JSON 字段中的值。

如果你需要更多关于 MySQL JSON 操作的帮助,请参考官方文档。

上一篇:mysqlregexp匹配多个字符串

下一篇:docker compose mysql

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站