我如何使用mySQLreplace()replace多个logging中的string?

我们有一个数据库,其中有一堆logging,其中一列有一些错误的数据,其中一个embedded式编辑器转义了一些本不应该被转义的东西,并且中断了生成的链接。

我想运行一个查询来replace所有logging中的坏字符,但不知道如何去做。 我在MySQL中find了replace()函数 ,但是如何在查询中使用它呢?

例如,如果我想要replacestring&lt; 在所有logging中具有小于尖括号( < )的&lt;articleItem列? 它可以在一个单一的查询(即一次select和全部replace),还是我必须做多个查询? 即使是多个查询,我如何使用replace()来replace多个logging上的字段的值?

在一个非常通用的水平

 UPDATE MyTable SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis') WHERE SomeOtherColumn LIKE '%PATTERN%' 

在你的情况下,你说这些是逃脱,但既然你没有指定他们如何逃脱,让我们说,他们逃到了GREATERTHAN

 UPDATE MyTable SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '<') WHERE articleItem LIKE '%GREATERTHAN%' 

由于你的查询实际上是在string内工作,所以你的WHERE子句做模式匹配不太可能提高任何性能 – 它实际上会为服务器产生更多的工作。 除非你有另一个WHERE子句成员会使这个查询执行得更好,否则你可以简单地做一个这样的更新:

 UPDATE MyTable SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '<') 

从一个完全不同的angular度来看:

您可以在select数据时执行此操作(而不是在保存时)

所以,而不是:

SELECT MyURLString From MyTable

你可以做

SELECT REPLACE (MyURLString, 'GREATERTHAN', '<') as MyURLString From MyTable

 UPDATE some_table SET some_field = REPLACE(some_field, '&lt;', '<') 

检查这个

 UPDATE some_table SET some_field = REPLACE("Column Name/String", 'Search String', 'Replace String') 

例如与样品string:

 UPDATE some_table SET some_field = REPLACE("this is test string", 'test', 'sample') 

EG与列/字段名称:

 UPDATE some_table SET some_field = REPLACE(columnName, 'test', 'sample') 

你可以写这样的存储过程:

CREATE PROCEDURE sanitize_ TABLE ()

开始

用下划线replace空格

UPDATE Table SET FieldName = REPLACE( FieldName ,“”,“_”)WHERE FieldName不是NULL;

#delete点

UPDATE Table SET FieldName = REPLACE( FieldName ,“。”,“”)其中FieldName不是NULL;

#delete(

UPDATE Table SET FieldName = REPLACE( FieldName ,“(”,“”)Where FieldName not NULL;

#delete)

UPDATE Table SET FieldName = REPLACE( FieldName ,“)”,“”) FieldName不为NULL;

#traplace或删除你想要的任何字符

#……………………..

结束

这样你就可以对表格进行模块化的控制。

你也可以概括一下存储过程,使用参数和表来input参数