mysql 删除数组 json 字段中的某个指定值
例:
SELECT car_img FROM logistics_car_info WHERE car_id=2 -- 结果为:["1", "2", "3", "4"] SELECT JSON_SEARCH(car_img, 'one', '4') FROM logistics_car_info WHERE car_id=2 --结果为:"$[3]" SELECT JSON_UNQUOTE(JSON_SEARCH(car_img, 'one', '4')) FROM logistics_car_info WHERE car_id=2 --结果为:$[3] -- 删除为4的数组项 UPDATE logistics_car_info SET car_img=JSON_REMOVE(car_img, JSON_UNQUOTE(JSON_SEARCH(car_img, 'one', '4'))) WHERE car_id = 2 AND JSON_SEARCH(car_img, 'one', '4') IS NOT NULL; --结果为:["1", "2", "3"]
users表 有两个列 分别为 username 列 和 follows列,其中follows列为json数组格式。
且假设表中数据有 用户名为X的用户有一个追随者为a。
添加第二个和第三个追随者的数据
UPDATE users SET follows = JSON_ARRAY_APPEND(follows, '$', 'b') where username ='x'; UPDATE users SET follows = JSON_ARRAY_APPEND(follows, '$', 'c') where username ='x';
移除:假设我们想要移除跟随者b,以检查要移除的跟随者
SELECT JSON_SEARCH(follows, 'one', 'b') FROM users;
上面将给出数组中要删除的对象的路径。
UPDATE users SET follows = JSON_REMOVE(follows, JSON_UNQUOTE(JSON_SEARCH(follows, 'one', 'b'))) WHERE JSON_SEARCH(follows, 'one', 'b') IS NOT NULL;
文章出处:http://www.cnblogs.com/aaron-agu/
只有毅力和决心才能使人真正具有价值!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现