您当前的位置: 首页 >  ar

石头wang

暂无认证

  • 0浏览

    0关注

    295博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

升级脚本需要更新带有特殊字符的值(换行、单引号、markdown文本)到字段中,如何兼容性更好

石头wang 发布时间:2022-02-16 21:15:00 ,浏览量:0

升级脚本需要更新带有特殊字符的值(换行、单引号、markdown文本)到字段中,如何兼容性更好

背景

有的时候,你的升级脚本(sql)需要往数据库表写入类似markdown这种带有换行甚至特殊字符的值。

你把markdown的文档源码直接写进 set val='你的markdown文本'是可以成功执行,但是有时候也会遇到报错(环境复杂),例如 在这里插入图片描述

有没有兼容性较好、健壮的方式?

操作

思路:利用base64的字串作为字面量,通过SQL函数转为我们本来应该书写的值,更新到表里。

例如将如下sql

update my_dict_table set dict_value='你要更新的字串
可能有换行的
如果有单引号会导致出错你得转义' where ...

改写为如下(我以pgsql为例,可能其他库会有不同写法)

update my_dict_table set dict_value=CONVERT_FROM(decode('你的base64字符串', 'base64'),'UTF-8') where ...

即将

你要更新的字串
可能有换行的
如果有单引号会导致出错你得转义

进行base64的编码后写入到 decode 里头

注意:需要 CONVERT_FROM,不然写入的值会有问题

由于base64编码后特殊字符(如单引号、换行)等都不是问题了,编码后得到的就是一行字串,不用担心出幺蛾子。

关注
打赏
1663722529
查看更多评论
立即登录/注册

微信扫码登录

0.0403s