mysql用replace替换记录,如何使用mySQL replace()替换多个记录中的字符串?

我们有一个数据库,该数据库的一列中有一堆记录,其中包含一些不良数据,其中的嵌入式编辑器转义了一些本不应该转义的内容,并且破坏了生成的链接。

我想运行一个查询来替换所有记录中的坏字符,但无法弄清楚该怎么做。 我在MySQL中找到了replace()函数,但是如何在查询中使用它呢?

例如,如果我想在所有articleItem列中具有

在执行任何操作之前,请确保还备份数据库。 您还将使用update来更新任何字段。

MySql的可能重复项-更新字符串部分的方法?

MySQL搜索的可能重复项并替换字段中的某些文本

在非常普通的水平上

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')

WHERE SomeOtherColumn LIKE '%PATTERN%'

在您的情况下,您说这些已被转义,但是由于您未指定如何转义,因此假设它们已转义到GREATERTHAN

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')

WHERE articleItem LIKE '%GREATERTHAN%'

由于查询实际上将在字符串内部进行,因此您的WHERE子句进行模式匹配不太可能提高任何性能-实际上,它将为服务器产生更多的工作。除非您有另一个WHERE子句成员将使此查询的性能更好,否则您可以像这样简单地进行更新:

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')

您还可以嵌套多个REPLACE调用

UPDATE MyTable

SET StringColumn = REPLACE (REPLACE (StringColumn, 'GREATERTHAN', '>'), 'LESSTHAN', '

您也可以在选择数据时(而不是保存时)执行此操作。

所以代替:

SELECT MyURLString From MyTable

你可以做

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

次要问题:GREATERTHAN是>

UPDATE some_table SET some_field = REPLACE(some_field, '

修复了

我重新编辑了。 谢谢你让我知道。 在我说我不知道该怎么做之后,它突然出现在我身上。 那就是我的世界运作的方式。:)

检查一下

UPDATE some_table SET some_field = REPLACE("Column Name/String", 'Search String', 'Replace 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()

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

这样,您就可以对表进行模块化控制。

您还可以使用表对参数化表进行通用化,以清理输入参数

这些空检查是多余的

是否有任何简单安全的工具来创建mysql存储过程?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值