MySQL的中文字段常常需要進(jìn)行首字母大寫的處理,這個(gè)問題在實(shí)際開發(fā)中非常常見。
一般情況下,可以使用SUBSTRING函數(shù)和UCASE函數(shù)來完成漢字提取首字母大寫的操作,具體代碼如下:
SELECT CONCAT(UCASE(SUBSTRING(str,1,1)),SUBSTRING(str,2)) FROM table_name;
其中str為需要進(jìn)行處理的漢字字段,table_name為表名。
需要注意的是,該方法只適用于單個(gè)漢字,如果需要處理多個(gè)漢字,需要使用循環(huán)或者自定義函數(shù)。
例如下面是一個(gè)處理多個(gè)漢字的函數(shù):
DROP FUNCTION IF EXISTS fn_str_first_upper; DELIMITER $$ CREATE FUNCTION fn_str_first_upper(str VARCHAR(1024)) RETURNS VARCHAR(1024) BEGIN DECLARE i INT default 0; DECLARE len INT default 0; DECLARE ret VARCHAR(1024) default ''; SET len=CHAR_LENGTH(str); WHILE(i<len) DO SET ret=CONCAT(ret,UCASE(SUBSTRING(str,i+1,1))); SET i=i+1; END WHILE; RETURN ret; END$$ DELIMITER ;
該函數(shù)將會(huì)把所有漢字的首字母提取出來,并且進(jìn)行大寫處理。
在實(shí)際開發(fā)當(dāng)中,可以將該函數(shù)封裝成一個(gè)公共函數(shù),方便在不同的場合進(jìn)行調(diào)用。