-- 解析 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;
->> 操作符从 JSON 字段中提取标量值(如年龄和城市)。JSON_CONTAINS_PATH 检查 JSON 中是否存在某个键,使用 JSON_SET 和 JSON_REMOVE 更新或删除 JSON 字段中的值。如果你需要更多关于 MySQL JSON 操作的帮助,请参考官方文档。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站