0

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

这是我目前拥有的:

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

但是,这只适用于特定列。如何在 MySQL 中处理整个表?

4

2 回答 2

1

You could always dump (export) the table contents, getting a create and insert command that you paste into a text editor, replace all Æ-s to AE, drop the table and run the exported script that wil re-create it with the changes you made.

于 2013-09-01T19:35:03.117 回答
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';

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

于 2013-09-01T19:42:19.557 回答