【发布时间】:2016-10-02 15:15:53
【问题描述】:
好的,所以我们现在有一个数据库,其中包含用户登录并保存状态信息。保存状态几乎只是一个 JSON blob,但我们发布的客户端有一个错误,其中生成了一个 '\' 字符,然后每次用户登录时都会为每个 '\ 添加一个新的'\' '。如果用户在足够长的时间内退出并重新登录,这将导致相当严重的问题 - 最终导致用户无法再登录。
我们修复了客户端,但所有这些保存状态在我们修复它们之前都无法使用。
这里的最终目标是使用 SQL 查询访问数据库,以尝试在一行中存在多个“\”时删除所有“\”。建议?也许是某种 REPLACE 调用?
【问题讨论】:
-
正在使用的数据库类型是什么,例如SQL Server?
-
它的 postgres,我绝对可以对它运行 SQL
-
看一眼documentation,类似于
regexp_replace(column, '\\{2,}', '')的东西应该作为替换函数。 (第一个反斜杠用于转义第二个。) -
我用 SELECT REGEXP_REPLACE("tableName", '\\{2,}', '') FROM table 打了它,但它似乎没有用。查询成功执行,我想知道它是否只是删除了 '\' 字符总数的一个子集?不过我会继续深入研究,regexp_replace 绝对是一个不错的起点
标签: sql database postgresql replace