在使用错误的数据库编码或类似问题导致问题导致修复导入不良的数据库的过程中.
无论如何,回到我的问题,为了解决这个问题,我正在使用这种形式的查询:
UPDATE
table_name
SET field_name = replace(field_name,'search_text','replace_text');
因此,如果我正在处理的表有多列,我必须为每个列调用此查询.而且,因为不仅有一对要运行查找和替换的东西,我还必须为每个对调用查询.
所以你可以想象,我最终运行了几十个查询来修复一个表.
我想知道的是,如果有一种方法可以在一个查询中组合多个查找和替换,比如,让我们说,查找这组内容,如果找到,则替换为其他一组内容中的相应对.
或者,如果有一种方法来查询我上面显示的表单,以某种方式递归地运行,对于表的每一列,无论其名称或编号如何.
感谢您的支持,titel
让我们分别尝试解决这些问题:
如果每个表中的每个列的替换集都是相同的(或者只有几个模式),请考虑创建一个用户定义的函数,该函数接受varchar并返回一个只调用replace(replace(@input,'search1','replace1'),'search2','replace2')
嵌套的varchar 作为适当的.
要同时更新多个列,您应该可以执行UPDATE table_name SET field_name1 = replace(field_name1,...), field_name2 = replace(field_name2,...)
或类似的操作.
至于为每个表中的每一列运行类似的东西,我认为最简单的方法是编写一些代码来获取列列表并生成从中执行的查询.