avatar

目录
mysql 中 json 类型踩坑

今天有一个需求,修改数据库中原本是json类型的一个字段,本想,这不简单,update table_name set column_value = xxxxxx where id = 1不就好啦。

此处需要修改的字段为column_value, 假设需要修改成
[{"Test1":{"Val1":"37", "Val2":"25"}},{"Test2":{"Val1":"25", "Val2":"27"}}], 这样保存是没问题的~ 但实际业务,并不是这么简单,我需要保存的json字段比较复杂,我简单引用会引发报错的一小部分
{"instruction":"

活动时间:

\n

2022年5月26日 - 2022年6月30日"}, 直接执行语句update table_name set column_value = '{"instruction":"

活动时间:

\n

2022年5月26日 - 2022年6月30日"}' where id = 1就报错了~

报错信息 ERROR 3140 (22032): Invalid JSON text: "Invalid escape character in string." at position 37 in value for column 'table_name.column_value'.
看了看报错信息才知道,原来是数据自带了\r\n这样的换行符号,首先需要将\n转移成\\n

文章作者: Viola Tangxl
文章链接: https://violatangxl.github.io/2022/05/24/mysql-json/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 椰子是只猫
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论