1
編輯:將CHARSET utf8
添加到輸入參數和輸出使其工作。 我發現這個代碼段第一個字母轉換每個字爲大寫MySQL中每個單詞(utf8)的大寫首字母
DELIMITER $$
CREATE FUNCTION CAP_FIRST (INPUT VARCHAR(255) CHARSET utf8)
RETURNS VARCHAR(255) CHARSET utf8
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$$
DELIMITER ;
,同時它爲ASCII字符串;它不適用於utf8
像當我做select cap_first('tiếng việt');
;結果我得到Ti?ng Vi?t
。
我的表是utf8_general_ci
謝謝你的擡頭。 我沒有添加字符集UTF8輸入參數和輸出,它現在工作。 'CREATE FUNCTION CAP_FIRST(INPUT VARCHAR(255)CHARSET utf8)' 'RETURNS VARCHAR(255)CHARSET utf8' –