You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在HeidiSQL中执行MariaDB的JSON_REMOVE语句不生效报错如何解决

报错原因与排查方案

以下是该UPDATE语句执行失败的几类常见原因:

  • MariaDB版本不匹配

JSON_REMOVE 是 MariaDB 10.2.3 版本才新增的内置函数,如果当前使用的 MariaDB 版本低于 10.2.3,会直接触发函数不存在的报错。
执行以下命令即可验证当前数据库版本:

SELECT VERSION();

若版本低于要求值,需升级数据库版本,或自行实现JSON字符串的替换逻辑完成字段更新。

  • inventory字段存在非法JSON值

如果inventory字段不是JSON类型,或者部分行的存储内容不符合JSON格式规范(比如空字符串、格式残缺的JSON文本、非JSON的普通字符串),执行JSON_REMOVE时就会抛出异常。
之前在phpMyAdmin中执行正常,大概率是旧环境关闭了严格SQL模式,遇到非法JSON时仅返回NULL不会中断执行,而当前环境开启了严格SQL模式,遇到异常就会直接报错。
可执行以下命令排查存在非法JSON值的行:

SELECT id, inventory FROM users WHERE NOT JSON_VALID(inventory);

修正异常行的内容为合法JSON后,再执行UPDATE语句即可。

  • HeidiSQL语法转义异常

部分旧版本HeidiSQL会自动转义SQL语句中的特殊字符,比如把JSON路径里的单引号转义为\',导致路径参数解析错误,也会引发执行失败。
可先执行测试语句验证JSON函数本身是否可用:

SELECT JSON_REMOVE('{"spray": "test", "count": 1}', '$.spray');

如果执行后返回正常结果{"count": 1},就说明函数本身无异常,问题出在UPDATE的数据源上,否则需要检查HeidiSQL的执行配置,关闭不必要的SQL自动转义功能。

内容的提问来源于stack exchange,提问作者Soubi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:36:09