我如何使用mySQLreplace()replace多个logging中的string?
我们有一个数据库,其中有一堆logging,其中一列有一些错误的数据,其中一个embedded式编辑器转义了一些本不应该被转义的东西,并且中断了生成的链接。
我想运行一个查询来replace所有logging中的坏字符,但不知道如何去做。 我在MySQL中find了replace()
函数 ,但是如何在查询中使用它呢?
例如,如果我想要replacestring<
在所有logging中具有小于尖括号( <
)的<
在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, '<', '<')
检查这个
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参数