我的数据库中有名字,如Ætherling或其他单词,其中AE可以在字符串的中间。我想将Æ的所有实例更改为AE。我的数据库中的所有字符串都是utf8_unicode。
这就是我目前所拥有的:
UPDATE `cards` set name = REPLACE(name,'Æ','AE');
然而,这仅适用于特定列。如何在MySQL中执行整个表?
答案 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';
它将生成一组更新查询。您复制它们,粘贴它们并运行它们。