今天有一个需求,修改数据库中原本是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
。