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

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

例如,如果我想用该列中所有记录中<的实际小于尖括号(<)替换字符串,那么正确的语法是什么?是否可以在单个查询中完成(即一次选择并替换所有内容),还是必须执行多个查询?即使是多个查询,如何使用多条记录对字段值进行替换?<articleItemreplace()

在非常普通的水平上

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来源:stack overflow

2020-05-10 23:11:37 企业邮箱发送邮件时,若出现投递失败产生退信,内容提示包含如下: the mta server of * reply:550 failed to meet SPF requirements 或者 the mta server of 163.com — 163mx01.mxmail.netease.com(220.181.14.141) reply:550 MI:SPF mx14,QMCowECpA0qTiftVaeB3Cg—.872S2 1442548128 http://mail.163.com/help 299245 GIS开发:开源pgRouting最短路径 odoo wizard界面显示带复选框列表及勾选数据获取 Android MTK平台 客制化系统来电界面(屏蔽 InCallUI 提供接口给客户自行展示来电去电页面) Android8.1 MTK 短信 bug 修改 Android 系统生成 releasekey