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

MySQL使用json_merge_patch出现Invalid JSON text报错排查

JSON_MERGE_PATCH报错原因排查

核心错误点

你在调用json_merge_patch函数时,错误地给列名jdata加上了单引号,导致函数第一个参数收到的是普通字符串'jdata',而非jdata列中存储的合法JSON数据。字符串'jdata'不符合JSON格式规范,因此触发了参数1位置0的无效JSON报错。

修正后的SQL语句

insert into
    stats.daily_user_stats
VALUES
    (null,'2022-02-02',1,18,3,'{"pageviews":{"user":1}}')
on duplicate key update
jdata =
    if(
        json_contains_path(jdata, 'one', '$.pageviews.user'),
        json_set(jdata, '$.pageviews.user', cast(json_extract(jdata, '$.pageviews.user')+1 as UNSIGNED)),
        -- 去掉jdata两侧的单引号,直接传入列名即可
        json_merge_patch(jdata,'{"pageviews":{"user":1}}')
    )

额外注意项

如果你的MySQL版本支持JSON_INSERT、JSON_COALESCE相关函数,也可以简化逻辑避免if判断,进一步降低语法错误概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:24:07