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

MariaDB插入含JSON结构的HERE字段报错,求正确INSERT语句

解决MariaDB中JSON格式数据插入HERE字段的问题

你的HERE字段类型为longtext,要插入嵌套JSON对象时,核心是要让插入的JSON内容符合SQL字符串语法,或者利用MariaDB的JSON工具函数来生成合法数据,以下是两种可行的INSERT语句写法:

方法1:直接插入转义后的JSON字符串

SQL中字符串用单引号包裹,因此需要将JSON对象里的双引号保留,整体用单引号包裹即可(如果JSON内有单引号,需转成两个单引号''):

INSERT INTO xx (id, xx, HERE, xxxxxx, xxxxxx, xxxx, attr)
VALUES (
    1,
    'string',
    '{"1":"string","2":"string"}',
    -- 替换为对应字段的实际值,比如tinyint字段填1或0,长文本字段填对应字符串
    1,
    '示例长文本内容',
    '另一长文本内容',
    'attr字段的内容'
);

方法2:用MariaDB JSON函数生成合法内容

如果你的MariaDB版本是10.2及以上(支持JSON功能),可以用JSON_OBJECT函数自动构造JSON对象,无需手动处理引号转义:

INSERT INTO xx (id, xx, HERE, xxxxxx, xxxxxx, xxxx, attr)
VALUES (
    1,
    'string',
    JSON_OBJECT('1', 'string', '2', 'string'),
    1,
    '示例长文本内容',
    '另一长文本内容',
    'attr字段的内容'
);

额外注意事项

  • 若后续需要频繁操作HERE字段的JSON内容,建议把该字段类型改为JSON(MariaDB 10.2+支持),这样可以用JSON_EXTRACT、JSON_SET等函数更便捷地查询、修改JSON数据。
  • 之前的报错大概率是因为JSON字符串格式不合法(比如引号未正确包裹、转义错误),或者直接传入了未转成字符串的JSON对象导致SQL解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:47:16