【问题标题】:In MYSQL create function for changing multiple characters在 MYSQL 中创建用于更改多个字符的函数
【发布时间】:2015-01-08 10:12:19
【问题描述】:

我想为多列的行将一些土耳其语字符更改为英语。

小写字符:

ç 到 c, ğ 到 g, ı 到 i, ö 到 o, ş 到 s, ü 到 u

大写字符:

Ç 到 C,Ğ 到 G,İ 到 I,Ö 到 O,Ş 到 S,Ü 到 U

例如:

包含“ARÇELİK”字符串值的列。 将要创建的函数应将此值更改为“ARCELIK”

感谢您的回复。

【问题讨论】:

    标签: mysql replace character


    【解决方案1】:

    我创建了一个函数来解决这个问题。

    我的功能是这个。

    创建函数REPLACECHARS(t1 varchar(100) CHARSET utf8) RETURNS varchar(100) CHARSET latin1 开始 声明 s1 varchar(100) CHARSET latin1;

    set 
    s1 = REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(t1,'ç','c'),'ğ','g'),'ı','i'),'ö','o'),'ş','s'),'ü','u'),'Ç','C'),'Ğ','G'),'İ','I'),'Ö','O'),'Ş','S'),'Ü','U');
    

    返回 s1; 结束

    【讨论】:

    • 不是理想的解决方案,但肯定是暂时的问题解决者。谢谢。
    【解决方案2】:

    参考这个link。认为它可以帮助你。

    【讨论】:

      【解决方案3】:

      您可以为此使用REPLACE 函数。

      SELECT REPLACE('ARÇELİK','Ç','C');

      现在输出将是ARCELİK

      也许您可以将所有要替换的字符放在一个表中,然后通过 REPLACE 循环所有这些字符。我无法测试这个自动取款机,这只是我的一个想法;-)

      【讨论】:

        猜你喜欢
        • 2021-03-24
        • 1970-01-01
        • 2021-04-18
        • 2015-08-13
        • 2021-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多