如何将Æ替换为表中所有字符串的AE?

时间:2013-09-01 19:16:22

标签: php mysql

我的数据库中有名字,如Ætherling或其他单词,其中AE可以在字符串的中间。我想将Æ的所有实例更改为AE。我的数据库中的所有字符串都是utf8_unicode。

这就是我目前所拥有的:

UPDATE `cards` set name = REPLACE(name,'Æ','AE');

然而,这仅适用于特定列。如何在MySQL中执行整个表?

2 个答案:

答案 0 :(得分:1)

您可以随时转储(导出)表内容,获取粘贴到文本编辑器中的create和insert命令,将所有Æ-s替换为AE,删除表并运行将重新创建它的导出脚本随着你所做的改变。

答案 1 :(得分:1)

我认为运行将更新所有列的查询没有多大意义,因为其中一些列可能不包含varchar值。

您必须明确指定字段:

UPDATE `cards` set 
   name = REPLACE(name,'Æ','AE'), 
   other = REPLACE(other,'Æ','AE'), 
   andother = REPLACE(andother,'Æ','AE');

或者你可以从这里使用查询: Replace all fields in MySQL

select concat(
       'UPDATE my_table SET ',
       column_name,
       ' = REPLACE(', column_name, ', ''a'', ''e'');')
from information_schema.columns
where table_name = 'my_table';

它将生成一组更新查询。您复制它们,粘贴它们并运行它们。