MySQL - Прописать первую букву каждого слова, включая Turki sh Символы - PullRequest
0 голосов
/ 24 января 2020

У меня есть mysql функция, которая заглавная первая буква каждого слова в нужной строке.

Что я хочу сделать, это преобразовать Turki sh символов в Turki sh вхождения вместо Engli sh вхождение, такое как;

i = I (должно быть İ), ş = S (должно быть Ş) et c.

Таблица правильных конверсий;

i = İ (currently : I)
ö = Ö (currently : O)
ü = Ü (currently : U)
ç = Ç (currently : C)
ş = Ş (currently : S)

Я тестировал с кодировкой utf8 и utf8_turkish_ci, но с одинаковым результатом.

Используемая функция:

CREATE FUNCTION CAP_FIRST (input VARCHAR(255))

RETURNS VARCHAR(255)

DETERMINISTIC

BEGIN
    DECLARE len INT;
    DECLARE i INT;

    SET len   = CHAR_LENGTH(input);
    SET input = LOWER(input);
    SET i = 0;

    WHILE (i < len) DO
        IF (MID(input,i,1) = ' ' OR i = 0) THEN
            IF (i < len) THEN
                SET input = CONCAT(
                    LEFT(input,i),
                    UPPER(MID(input,i + 1,1)),
                    RIGHT(input,len - i - 1)
                );
            END IF;
        END IF;
        SET i = i + 1;
    END WHILE;

    RETURN input;
END;

Как решить эту проблему с помощью чистой mysql функции

...