【问题标题】:How to remove accents in MySQL?如何删除 MySQL 中的重音符号?
【发布时间】:2011-06-16 08:44:30
【问题描述】:

我刚刚编译了一个包含 100 万个地名的数据库。我将在自动完成小部件中使用它来查找城市。很多这些地方都有重音...我希望能够在用户键入没有重音的名称时找到记录。

为了做到这一点,我有一个第二列,其中包含一个不带重音的名称副本。其中许多记录仍然是空白的,所以我想编写一个查询来填充它们。这在直接 MySQL 中是否可能?如果有,怎么做?

【问题讨论】:

  • 看这个帖子stackoverflow.com/questions/2302813/…,不用另列,换个查询
  • 为什么不使用正则表达式,例如(a|á)
  • @Eric Fortis 正则表达式在这种情况下是不必要的,而且很重
  • @eric,因为那会变得很大。 PHP 的 iconv() 会有所帮助。不过,我会注意到,在 TCPDF 源代码中,处理了许多特殊的注意事项,这些注意事项不是 PHP 使用的任何库所固有的(为了非常安全/可识别 Unicode)。
  • @Eric Fortis:考虑到所有可能的重音组合,这将是一个 long 正则表达式,您可能会忘记一些。此外,在某些编码中,某些字符在逻辑上不能完全转换为 ASCII(例如,在德语中,ö 可能会变成 oe

标签: mysql utf-8 diacritics


【解决方案1】:

如果您为该列设置了适当的排序规则,则该字段中的值自然会与其未重音的等效值进行比较。

mysql> SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT 'é' = 'e';
+------------+
| 'é' = 'e' |
+------------+
|          1 |
+------------+
1 row in set (0.05 sec)

【讨论】:

  • 问题.. 这对于非英语字符的效果如何?
  • @zanlok:不太好。它做了一些,例如“ß”等于“ss”,但更进一步,它会崩溃。
  • "ß" = "ss" COLLATE utf8_unicode_ci -- 匹配。 “组合变音符号也适用于该排序规则。
  • ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_520_ci
【解决方案2】:

我遇到了同样的问题,所以我写了一个基于 PHP 脚本的查询列表,我必须删除重音并制作 SEO 友好的 URL:

也许您想添加其他特殊字符,例如 $£ 符号...

UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Š','S');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'š','s');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ð','Dj');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ž','Z');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ž','z');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'À','A');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Á','A');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Â','A');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ã','A');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ä','A');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Å','A');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Æ','A');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ç','C');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'È','E');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'É','E');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ê','E');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ë','E');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ì','I');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Í','I');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Î','I');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ï','I');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ñ','N');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ò','O');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ó','O');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ô','O');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Õ','O');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ö','O');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ø','O');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ù','U');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ú','U');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Û','U');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ü','U');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ý','Y');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Þ','B');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ß','Ss');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'à','a');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'á','a');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'â','a');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ã','a');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ä','a');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'å','a');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'æ','a');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ç','c');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'è','e');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'é','e');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ê','e');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ë','e');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ì','i');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'í','i');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'î','i');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ï','i');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ð','o');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ñ','n');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ò','o');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ó','o');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ô','o');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'õ','o');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ö','o');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ø','o');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ù','u');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ú','u');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'û','u');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ý','y');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ý','y');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'þ','b');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ÿ','y');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ƒ','f');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'.',' ');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,' ','-');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'--','-');

UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ě','e');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ž','z');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'š','s');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'č','c');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ř','r');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ď','d');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ť','t');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ň','n');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'ů','u');

UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ě','E');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ž','Z');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Š','S');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Č','C');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ř','R');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ď','D');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ť','T');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ň','N');
UPDATE TABLE_NAME SET COLUMN = REPLACE(COLUMN,'Ů','U');

UPDATE TABLE_NAME SET COLUMN = LOWER(COLUMN);

【讨论】:

  • 恭喜,存储过程很棒
  • A) 这实际上回答了标题问题 B) 当您有大量没有预先生成 slug/pretty-url 的项目列表并且您想直接在 DB 中生成它们时(因为大量的值)顺便说一句:我会添加ě, ž, š, č , ř , ď, ť, ň, ů
  • 完美运行!问候。
  • 确实删除了重音符号,但是,某些语言对某些值使用不同的表示形式(例如在德语中,'ä' 是 'ae','ö' 是 'oe' , ...)。
【解决方案3】:

我分享这个也许可以帮助....:

DELIMITER //
CREATE OR REPLACE FUNCTION `remove_accents`(`str` TEXT)
    RETURNS text
    LANGUAGE SQL
    DETERMINISTIC
    NO SQL
    SQL SECURITY INVOKER
    COMMENT ''

BEGIN

    SET str = REPLACE(str,'Š','S');
    SET str = REPLACE(str,'š','s');
    SET str = REPLACE(str,'Ð','Dj');
    SET str = REPLACE(str,'Ž','Z');
    SET str = REPLACE(str,'ž','z');
    SET str = REPLACE(str,'À','A');
    SET str = REPLACE(str,'Á','A');
    SET str = REPLACE(str,'Â','A');
    SET str = REPLACE(str,'Ã','A');
    SET str = REPLACE(str,'Ä','A');
    SET str = REPLACE(str,'Å','A');
    SET str = REPLACE(str,'Æ','A');
    SET str = REPLACE(str,'Ç','C');
    SET str = REPLACE(str,'È','E');
    SET str = REPLACE(str,'É','E');
    SET str = REPLACE(str,'Ê','E');
    SET str = REPLACE(str,'Ë','E');
    SET str = REPLACE(str,'Ì','I');
    SET str = REPLACE(str,'Í','I');
    SET str = REPLACE(str,'Î','I');
    SET str = REPLACE(str,'Ï','I');
    SET str = REPLACE(str,'Ñ','N');
    SET str = REPLACE(str,'Ò','O');
    SET str = REPLACE(str,'Ó','O');
    SET str = REPLACE(str,'Ô','O');
    SET str = REPLACE(str,'Õ','O');
    SET str = REPLACE(str,'Ö','O');
    SET str = REPLACE(str,'Ø','O');
    SET str = REPLACE(str,'Ù','U');
    SET str = REPLACE(str,'Ú','U');
    SET str = REPLACE(str,'Û','U');
    SET str = REPLACE(str,'Ü','U');
    SET str = REPLACE(str,'Ý','Y');
    SET str = REPLACE(str,'Þ','B');
    SET str = REPLACE(str,'ß','Ss');
    SET str = REPLACE(str,'à','a');
    SET str = REPLACE(str,'á','a');
    SET str = REPLACE(str,'â','a');
    SET str = REPLACE(str,'ã','a');
    SET str = REPLACE(str,'ä','a');
    SET str = REPLACE(str,'å','a');
    SET str = REPLACE(str,'æ','a');
    SET str = REPLACE(str,'ç','c');
    SET str = REPLACE(str,'è','e');
    SET str = REPLACE(str,'é','e');
    SET str = REPLACE(str,'ê','e');
    SET str = REPLACE(str,'ë','e');
    SET str = REPLACE(str,'ì','i');
    SET str = REPLACE(str,'í','i');
    SET str = REPLACE(str,'î','i');
    SET str = REPLACE(str,'ï','i');
    SET str = REPLACE(str,'ð','o');
    SET str = REPLACE(str,'ñ','n');
    SET str = REPLACE(str,'ò','o');
    SET str = REPLACE(str,'ó','o');
    SET str = REPLACE(str,'ô','o');
    SET str = REPLACE(str,'õ','o');
    SET str = REPLACE(str,'ö','o');
    SET str = REPLACE(str,'ø','o');
    SET str = REPLACE(str,'ù','u');
    SET str = REPLACE(str,'ú','u');
    SET str = REPLACE(str,'û','u');
    SET str = REPLACE(str,'ý','y');
    SET str = REPLACE(str,'ý','y');
    SET str = REPLACE(str,'þ','b');
    SET str = REPLACE(str,'ÿ','y');
    SET str = REPLACE(str,'ƒ','f');


    RETURN str;
END
//
DELIMITER ;

【讨论】:

    【解决方案4】:
    drop function if exists fn_remove_accents;
    delimiter |
    create function fn_remove_accents( textvalue varchar(20000) )
    returns varchar(20000)
    begin
    
    set @textvalue = textvalue;
    
    -- ACCENTS
    set @withaccents = 'ŠšŽžÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝŸÞàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿþƒ';
    set @withoutaccents = 'SsZzAAAAAAACEEEEIIIINOOOOOOUUUUYYBaaaaaaaceeeeiiiinoooooouuuuyybf';
    set @count = length(@withaccents);
    
    while @count > 0 do
        set @textvalue = replace(@textvalue, substring(@withaccents, @count, 1), substring(@withoutaccents, @count, 1));
        set @count = @count - 1;
    end while;
    
    -- SPECIAL CHARS
    set @special = '!@#$%¨&*()_+=§¹²³£¢¬"`´{[^~}]<,>.:;?/°ºª+*|\\''';
    set @count = length(@special);
    while @count > 0 do
        set @textvalue = replace(@textvalue, substring(@special, @count, 1), '');
        set @count = @count - 1;
    end while;
    
    return @textvalue;
    
    end
    |
    

    【讨论】:

    • 解决方案很棒,但使用会话变量而不是局部变量,并且缺少 DETERMINISTIC 关键字。请参阅下面的更新解决方案...
    【解决方案5】:

    这里是一个简单的查询解决方案:

    UPDATE `my_table` SET alias = lower(name),
    alias = replace(alias,'Š','S'),
    alias = replace(alias,'š','s'),
    alias = replace(alias,'Ð','Dj'),
    alias = replace(alias,'Ž','Z'),
    alias = replace(alias,'ž','z'),
    alias = replace(alias,'À','A'),
    alias = replace(alias,'Á','A'),
    alias = replace(alias,'Â','A'),
    alias = replace(alias,'Ã','A'),
    alias = replace(alias,'Ä','A'),
    alias = replace(alias,'Å','A'),
    alias = replace(alias,'Æ','A'),
    alias = replace(alias,'Ç','C'),
    alias = replace(alias,'È','E'),
    alias = replace(alias,'É','E'),
    alias = replace(alias,'Ê','E'),
    alias = replace(alias,'Ë','E'),
    alias = replace(alias,'Ì','I'),
    alias = replace(alias,'Í','I'),
    alias = replace(alias,'Î','I'),
    alias = replace(alias,'Ï','I'),
    alias = replace(alias,'Ñ','N'),
    alias = replace(alias,'Ò','O'),
    alias = replace(alias,'Ó','O'),
    alias = replace(alias,'Ô','O'),
    alias = replace(alias,'Õ','O'),
    alias = replace(alias,'Ö','O'),
    alias = replace(alias,'Ø','O'),
    alias = replace(alias,'Ù','U'),
    alias = replace(alias,'Ú','U'),
    alias = replace(alias,'Û','U'),
    alias = replace(alias,'Ü','U'),
    alias = replace(alias,'Ý','Y'),  
    alias = replace(alias,'š','s'),
    alias = replace(alias,'Ð','Dj')
    alias = replace(alias,'ž','z'),
    alias = replace(alias,'Þ','B'),
    alias = replace(alias,'ß','Ss'),
    alias = replace(alias,'à','a'),
    alias = replace(alias,'á','a'),
    alias = replace(alias,'â','a'),
    alias = replace(alias,'ã','a'),
    alias = replace(alias,'ä','a'),
    alias = replace(alias,'å','a'),
    alias = replace(alias,'æ','a'),
    alias = replace(alias,'ç','c'),
    alias = replace(alias,'è','e'),
    alias = replace(alias,'é','e'),
    alias = replace(alias,'ê','e'),
    alias = replace(alias,'ë','e'),
    alias = replace(alias,'ì','i'),
    alias = replace(alias,'í','i'),
    alias = replace(alias,'î','i'),
    alias = replace(alias,'ï','i'),
    alias = replace(alias,'ð','o'),
    alias = replace(alias,'ñ','n'),
    alias = replace(alias,'ò','o'),
    alias = replace(alias,'ó','o'),
    alias = replace(alias,'ô','o'),
    alias = replace(alias,'õ','o'),
    alias = replace(alias,'ö','o'),
    alias = replace(alias,'ø','o'),
    alias = replace(alias,'ù','u'),
    alias = replace(alias,'ú','u'),
    alias = replace(alias,'û','u'),
    alias = replace(alias,'ý','y'),
    alias = replace(alias,'ý','y'),
    alias = replace(alias,'þ','b'),
    alias = replace(alias,'ÿ','y'),
    alias = replace(alias,'ƒ','f'),
    alias = replace(alias, 'œ', 'oe'),
    alias = trim(alias);
    

    在这个例子中:

    • 'my_table' 是表的名称,
    • 'name' 是原始字段
    • “别名”是新字段

    希望对你有帮助!

    如果您尝试使用 mysql 生成 slug 字段,也可以检查此变体: Easy way of generating a slug name column from the name column?

    【讨论】:

    • 这太棒了!只是快速的 cmets:在“alias = replace(alias,'Ð','Dj')”行之后缺少一个逗号。您还可以添加这两行,以获取更多变化: alias = replace(alias, 'Ł', 'L'), alias = replace(alias, 'ą', 'a'),
    【解决方案6】:

    user3245067 的解决方案很棒,但是它使用了会话变量。 这是使用局部变量以及 mysql 5.5 的 DETERMINISTIC 关键字的解决方案。在 mysql-5.5 中用德语变音符号测试。

    drop function if exists fn_remove_accents;
    delimiter $$
    create function fn_remove_accents( param_textvalue varchar(20000) )
    returns varchar(20000) DETERMINISTIC
    begin
    
    DECLARE var_textvalue VARCHAR(20000);
    DECLARE var_withaccents VARCHAR(50);
    DECLARE var_withoutaccents VARCHAR(50);
    DECLARE var_count INT;
    DECLARE var_special INT;
    
    set var_textvalue = param_textvalue;
    
    -- ACCENTS
    set var_withaccents = 'ŠšŽžÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝŸÞàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿþƒ';
    set var_withoutaccents = 'SsZzAAAAAAACEEEEIIIINOOOOOOUUUUYYBaaaaaaaceeeeiiiinoooooouuuuyybf';
    set var_count = length(var_withaccents);
    
    while var_count > 0 do
        set var_textvalue = replace(var_textvalue, substring(var_withaccents, var_count, 1), substring(var_withoutaccents, var_count, 1));
        set var_count = var_count - 1;
    end while;
    
    -- SPECIAL CHARS
    set var_special = '!var_#$%¨&*()_+=§¹²³£¢¬"`´{[^~}]<,>.:;?/°ºª+*|\\''';
    set var_count = length(var_special);
    while var_count > 0 do
        set var_textvalue = replace(var_textvalue, substring(var_special, var_count, 1), '');
        set var_count = var_count - 1;
    end while;
    
    return var_textvalue;
    
    end$$
    
    delimiter ;
    

    【讨论】:

    • 嗨!你确定你的 var_special 吗?为什么你有这个模式:var_?
    • 我使用模式“var_”来轻松区分变量和列名 - 如果在函数中使用选择,这尤其有用,但不可否认,它在这里没有那么有价值:)。
    • 我赞同 Laurent.B 的评论。可能有误解,我们对 var_special 的内容感到困惑,而不是它的名字。另外,我认为它应该是一个字符串而不是 INT 。
    【解决方案7】:

    我想知道 MariaDB 的 REGEXP_REPLACE(col, 'e', 'e') 和 utf8_unicode_ci 是否会一次完成所有的 es。

    【讨论】:

    • REGEX 函数通常将重音字符视为不等于正常字符。所以这行不通
    • 是的,MySQL 8.0 应该可以工作。 MariaDB 还不是这样。
    【解决方案8】:

    这是我发现的最快最有效的方法:

    UPDATE movies SET `name` = REPLACE(`name`,'Š','S');
    UPDATE movies SET `name` = REPLACE(`name`,'š','s');
    UPDATE movies SET `name` = REPLACE(`name`,'Ð','Dj');
    UPDATE movies SET `name` = REPLACE(`name`,'Ž','Z');
    UPDATE movies SET `name` = REPLACE(`name`,'ž','z');
    UPDATE movies SET `name` = REPLACE(`name`,'À','A');
    UPDATE movies SET `name` = REPLACE(`name`,'Á','A');
    UPDATE movies SET `name` = REPLACE(`name`,'Â','A');
    UPDATE movies SET `name` = REPLACE(`name`,'Ã','A');
    UPDATE movies SET `name` = REPLACE(`name`,'Ä','A');
    UPDATE movies SET `name` = REPLACE(`name`,'Å','A');
    UPDATE movies SET `name` = REPLACE(`name`,'Æ','A');
    UPDATE movies SET `name` = REPLACE(`name`,'Ç','C');
    UPDATE movies SET `name` = REPLACE(`name`,'È','E');
    UPDATE movies SET `name` = REPLACE(`name`,'É','E');
    UPDATE movies SET `name` = REPLACE(`name`,'Ê','E');
    UPDATE movies SET `name` = REPLACE(`name`,'Ë','E');
    UPDATE movies SET `name` = REPLACE(`name`,'Ì','I');
    UPDATE movies SET `name` = REPLACE(`name`,'Í','I');
    UPDATE movies SET `name` = REPLACE(`name`,'Î','I');
    UPDATE movies SET `name` = REPLACE(`name`,'Ï','I');
    UPDATE movies SET `name` = REPLACE(`name`,'Ñ','N');
    UPDATE movies SET `name` = REPLACE(`name`,'Ò','O');
    UPDATE movies SET `name` = REPLACE(`name`,'Ó','O');
    UPDATE movies SET `name` = REPLACE(`name`,'Ô','O');
    UPDATE movies SET `name` = REPLACE(`name`,'Õ','O');
    UPDATE movies SET `name` = REPLACE(`name`,'Ö','O');
    UPDATE movies SET `name` = REPLACE(`name`,'Ø','O');
    UPDATE movies SET `name` = REPLACE(`name`,'Ù','U');
    UPDATE movies SET `name` = REPLACE(`name`,'Ú','U');
    UPDATE movies SET `name` = REPLACE(`name`,'Û','U');
    UPDATE movies SET `name` = REPLACE(`name`,'Ü','U');
    UPDATE movies SET `name` = REPLACE(`name`,'Ý','Y');
    UPDATE movies SET `name` = REPLACE(`name`,'Þ','B');
    UPDATE movies SET `name` = REPLACE(`name`,'ß','Ss');
    UPDATE movies SET `name` = REPLACE(`name`,'à','a');
    UPDATE movies SET `name` = REPLACE(`name`,'á','a');
    UPDATE movies SET `name` = REPLACE(`name`,'â','a');
    UPDATE movies SET `name` = REPLACE(`name`,'ã','a');
    UPDATE movies SET `name` = REPLACE(`name`,'ä','a');
    UPDATE movies SET `name` = REPLACE(`name`,'å','a');
    UPDATE movies SET `name` = REPLACE(`name`,'æ','a');
    UPDATE movies SET `name` = REPLACE(`name`,'ç','c');
    UPDATE movies SET `name` = REPLACE(`name`,'è','e');
    UPDATE movies SET `name` = REPLACE(`name`,'é','e');
    UPDATE movies SET `name` = REPLACE(`name`,'ê','e');
    UPDATE movies SET `name` = REPLACE(`name`,'ë','e');
    UPDATE movies SET `name` = REPLACE(`name`,'ì','i');
    UPDATE movies SET `name` = REPLACE(`name`,'í','i');
    UPDATE movies SET `name` = REPLACE(`name`,'î','i');
    UPDATE movies SET `name` = REPLACE(`name`,'ï','i');
    UPDATE movies SET `name` = REPLACE(`name`,'ð','o');
    UPDATE movies SET `name` = REPLACE(`name`,'ñ','n');
    UPDATE movies SET `name` = REPLACE(`name`,'ò','o');
    UPDATE movies SET `name` = REPLACE(`name`,'ó','o');
    UPDATE movies SET `name` = REPLACE(`name`,'ô','o');
    UPDATE movies SET `name` = REPLACE(`name`,'õ','o');
    UPDATE movies SET `name` = REPLACE(`name`,'ö','o');
    UPDATE movies SET `name` = REPLACE(`name`,'ø','o');
    UPDATE movies SET `name` = REPLACE(`name`,'ù','u');
    UPDATE movies SET `name` = REPLACE(`name`,'ú','u');
    UPDATE movies SET `name` = REPLACE(`name`,'û','u');
    UPDATE movies SET `name` = REPLACE(`name`,'ý','y');
    UPDATE movies SET `name` = REPLACE(`name`,'ý','y');
    UPDATE movies SET `name` = REPLACE(`name`,'þ','b');
    UPDATE movies SET `name` = REPLACE(`name`,'ÿ','y');
    UPDATE movies SET `name` = REPLACE(`name`,'ƒ','f');
    

    【讨论】:

      【解决方案9】:

      查看CONVERT()CAST() 上的 MySQL 手册:http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html

      CONVERT() 提供了一种在不同字符集之间转换数据的方法。语法是:

      CONVERT(expr USING transcoding_name)

      【讨论】:

      • CONVERT 和 CAST 不会转译字符
      猜你喜欢
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 2012-12-10
      • 2015-08-30
      • 1970-01-01
      相关资源
      最近更新 更多