更改列中的数据大小

时间:2011-10-18 06:04:57

标签: mysql

我需要重新格式化uk_city列中的数据,现在所有行条目都是大写的我想重新格式化为FirstChr大写和另一个小写。

FELTON to Felton
FENNY COMPTON to Fenny Compton

1 个答案:

答案 0 :(得分:1)

我发布了一个找到here

的函数
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;

如果在数据库中创建此功能,则可以执行

UPDATE uk_city SET name = CAP_FIRST(name);