mysql⽤replace替换记录,如何使⽤mySQLreplace()替换多
个记录中的字符串?
我们有⼀个数据库,该数据库的⼀列中有⼀堆记录,其中包含⼀些不良数据,其中的嵌⼊式编辑器转义了⼀些本不应该转义的内容,并且破坏了⽣成的链接。
我想运⾏⼀个查询来替换所有记录中的坏字符,但⽆法弄清楚该怎么做。 我在MySQL中到了replace()函数,但是如何在查询中使⽤它呢?
例如,如果我想在所有articleItem列中具有
在执⾏任何操作之前,请确保还备份数据库。 您还将使⽤update来更新任何字段。
MySql的可能重复项-更新字符串部分的⽅法?
MySQL搜索的可能重复项并替换字段中的某些⽂本
在⾮常普通的⽔平上
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')
WHERE SomeOtherColumn LIKE '%PATTERN%'
mysql存储过程使用在您的情况下,您说这些已被转义,但是由于您未指定如何转义,因此假设它们已转义到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存储过程?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论