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

如何在SQL中替换JSON字段指定的color字符串值?

问题

我有如下数据表:

+-------+--------------------------------------------------------------------------+
| id    | json_text                                                                |
+-------+--------------------------------------------------------------------------+
| aWoJl | {"color":"#1B3451","help_text":"color is here but dont replace me"}      |
+-------+--------------------------------------------------------------------------+
| r5Njc | {"color":"#1B3451","help_text":"color is also here but dont replace me"} |
+-------+--------------------------------------------------------------------------+

需要将json_text字段中color对应的取值从#1B3451替换为#1e72d2。尝试使用replace()函数未得到预期结果(会误替换help_text中的"color"相关内容),使用通配符时出现报错,请问该如何实现此需求?


解决方案

不要用字符串替换函数处理JSON数据,应使用专门的JSON操作函数精准修改目标键值。针对SQL Server环境,可使用JSON_MODIFY()函数实现需求:

更新语句

UPDATE 你的表名
SET     json_text = JSON_MODIFY(json_text, '$.color', '#1e72d2')
WHERE   JSON_VALUE(json_text, '$.color') = '#1B3451';

关键说明

  • JSON_MODIFY()是SQL Server原生的JSON修改函数,通过$.color这个JSON路径精准定位到color键,直接替换其值,不会影响JSON结构中的其他内容(比如help_text里的文本)。
  • WHERE子句用于过滤仅color值为#1B3451的行,避免无意义的更新操作。
  • 相比REPLACE(),该方法完全基于JSON结构操作,不会因为JSON键顺序变化、其他字段出现相同字符串而导致误修改,稳定性和精准性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:01:33