Mysql字符映射

Mysql字符映射,mysql,character-encoding,Mysql,Character Encoding,我想把外国字符,特别是土耳其语字符映射到Mysql中的拉丁语-1 比如说, Select name FROM users WHERE id = 1 结果=ıakır 但我想得到的是: 卡基尔 或 Özel->Ozel 有两个土耳其语字符,它们都有拉丁语-1对应词。() 如何在Mysql中使用SQL查询来实现这一点?我也可以手动映射,因为这个查询在一天中会运行几次,所以此时性能影响并不重要 提前感谢, 如何在Mysql中使用SQL查询来实现这一点 如果只需要针对土耳其语中常用的几个字符,则可以使

我想把外国字符,特别是土耳其语字符映射到Mysql中的拉丁语-1

比如说,

Select name FROM users WHERE id = 1
结果=ıakır

但我想得到的是:

卡基尔

Özel->Ozel

有两个土耳其语字符,它们都有拉丁语-1对应词。()

如何在Mysql中使用SQL查询来实现这一点?我也可以手动映射,因为这个查询在一天中会运行几次,所以此时性能影响并不重要

提前感谢,

如何在Mysql中使用SQL查询来实现这一点

如果只需要针对土耳其语中常用的几个字符,则可以使用(可怕的)字符串替换:

SELECT
    REPLACE(REPLACE(
        REPLACE(REPLACE(
            REPLACE(REPLACE(
                REPLACE(REPLACE(
                    REPLACE(REPLACE(
                        REPLACE(REPLACE(
                            name,
                        'İ', 'I'), 'ı' 'i'),
                    'Ö', 'O'), 'ö', 'o'),
                'Ü', 'U'), 'ü', 'u'),
            'Ç', 'C'), 'ç', 'c'),
        'Ğ', 'G'), 'ğ', 'g'),
    'Ş', 'S'), 'ş', 's')
    AS name
FROM users
WHERE id=1
如果需要,可以将其放入存储过程中,但实际上,最好使用数据库之外的适当编程(脚本)语言。您将获得更好的字符串替换/翻译工具和更通用的解决方案


例如,使用Unicode规范化删除变音符号相当容易。一般来说,音译是一项棘手且可能与语言有关的任务,对于数据库层来说可能太难了。

为什么要使用mysql?为什么不让所有角色都保持原样呢?我刚刚在其他评论中解释过。在应用程序内部搜索会产生问题,因为我们需要输入相同的字符,但不是每个人都有土耳其键盘,这就是为什么。非常感谢,我知道如果我有机会在数据库之外执行此操作会更好,但此查询将在我没有任何权限修改输出的应用程序上运行。再次非常感谢。我将创建一个存储过程,它将提供更好的性能,我想,尽管它有极好的性能。