我的数据库中有名称,例如 Ætherling 或其他单词,其中 AE 可以位于字符串的中间。我想将 Æ 的所有实例更改为 AE。我数据库中的所有字符串都是 utf8_unicode。
这是我目前拥有的:
UPDATE `cards` set name = REPLACE(name,'Æ','AE');
但是,这只适用于特定列。如何在 MySQL 中处理整个表?
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.
我认为运行将更新所有列的查询没有多大意义,因为其中一些列可能不包含 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';
它将生成一组更新查询。你复制它们,粘贴它们并运行它们。