我有一个快速的要求,我需要更新我的数据库中已损坏的数据。 我有几个文本列,文本中包含& nbsp,尽管我们已经修复了代码中的问题,但仍需要更正db中的损坏数据。
我想我能做到
UPDATE table_name
SET column_name=(
SELECT REPLACE(colum_name, ' ', '')
FROM table_name
WHERE id=1234)
WHERE id=1234
但我必须为每一行单独进行。是否有更简单的查询,它会检查特定列中的所有行并删除& nbsp标记?
感谢您的帮助。
答案 0 :(得分:9)
我认为其他专家过于复杂的解决方案实际上只需要一个简单的UPDATE
:
UPDATE table_name SET column_name = REPLACE(column_name, ' ', '')
WHERE column_name LIKE '% %'
答案 1 :(得分:1)
您可以使用存储过程或匿名块
来完成此操作它应该是这样的。
begin
declare atend boolean default false;
declare val char(32);
declare newstring char(32);
declare c cursor for
select col from table;
open c;
fetch c into val;
while (atend = false) do
set newstring = replace(val, ' ', '');
update table set col = newstring where current of c;
fetch c into val;
end while;
end@