How can I use mySQL replace() to replace strings in multiple records?
我们有一个数据库,该数据库的一列中有一堆记录,其中包含一些不良数据,其中的嵌入式编辑器转义了一些本不应该转义的内容,并且破坏了生成的链接。
我想运行一个查询来替换所有记录中的坏字符,但无法弄清楚该怎么做。 我在MySQL中找到了
例如,如果我想在所有
在非常普通的水平上
1 2 3 4 5 |
在您的情况下,您说这些已被转义,但是由于您未指定如何转义,因此假设它们已转义到
1 2 3 4 5 |
由于查询实际上将在字符串内部进行,因此您的
您还可以嵌套多个
1 2 |
您也可以在选择数据时(而不是保存时)执行此操作。
所以代替:
你可以做
检查一下
1 |
例如带有示例字符串:
带有列/字段名称的EG:
您可以编写这样的存储过程:
CREATE PROCEDURE sanitize_TABLE()
BEGIN
#replace space with underscore
UPDATE Table SET FieldName = REPLACE(FieldName,"","_") WHERE FieldName is not NULL;
#delete dot
UPDATE Table SET FieldName = REPLACE(FieldName,".","") WHERE FieldName is not NULL;
#delete (
UPDATE Table SET FieldName = REPLACE(FieldName,"(","") WHERE FieldName is not NULL;
#delete )
UPDATE Table SET FieldName = REPLACE(FieldName,")","") WHERE FieldName is not NULL;
#raplace or delete any char you want
#..........................
END
这样,您就可以对表进行模块化控制。
您还可以使用表对参数化表进行通用化,以清理输入参数