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

如何在MySQL中更新存储JSON数据的TEXT类型字段

MySQL TEXT字段存储JSON数据的更新解决方案

错误原因

  • 语法不合法:JSON_REPLACE 第一个参数要求传入JSON类型值,你直接传入未包裹的SELECT子句不符合函数参数规则,即使要使用子查询也需要用括号将SELECT语句包裹,且确保子查询仅返回单行单列结果。
  • 类型不匹配:你用于存储JSON的字段是TEXT类型,MySQL的JSON处理函数无法直接识别TEXT类型的JSON文本,需要先通过CAST函数将TEXT值转换为JSON类型。
  • 用法错误:更新表内数据需要使用UPDATE语句结构,直接调用JSON_REPLACE函数无法完成表数据的修改操作。

正确更新语句

UPDATE payment_options 
SET text_column = JSON_REPLACE(
    CAST(text_column AS JSON), 
    '$.card_number', 
    'update to this'
)
WHERE id = 1;

可选优化方案

如果业务长期需要存储JSON数据,建议直接将字段类型修改为JSON类型,后续不需要每次手动转换类型,还能获得MySQL自带的JSON格式合法性校验能力,修改字段的语句如下:

ALTER TABLE payment_options MODIFY COLUMN text_column JSON;

修改完字段类型后,更新语句可以简化为:

UPDATE payment_options 
SET text_column = JSON_REPLACE(text_column, '$.card_number', 'update to this')
WHERE id = 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:18:04