MySQL漢字轉換拼音 儲存函式

2021-08-27 13:19:39 字數 1429 閱讀 7292

mysql漢字轉換拼音(儲存函式)

begin

declare tmp_str varchar(255) charset gbk default '' ; #擷取字串,每次做擷取後的字串存放在該變數中,初始為函式引數in_string值

declare tmp_len smallint default 0;#tmp_str的長度

declare tmp_char varchar(2) charset gbk default '';#擷取字元,每次 left(tmp_str,1) 返回值存放在該變數中

declare tmp_rs varchar(255) charset gbk default '';#結果字串

declare tmp_cc varchar(2) charset gbk default '';#拼音字元,存放單個漢字對應的拼音首字元

set tmp_str = in_string;#初始化,將in_string賦給tmp_str

set tmp_len = length(tmp_str);#初始化長度

while tmp_len > 0 do #如果被計算的tmp_str長度大於0則進入該while

set tmp_char = left(tmp_str,1);#獲取tmp_str最左端的首個字元,注意這裡是獲取首個字元,該字元可能是漢字,也可能不是。

set tmp_cc = tmp_char;#左端首個字元賦值給拼音字元

if length(tmp_char)>1 then#判斷左端首個字元是多位元組還是單位元組字元,要是多位元組則認為是漢字且作以下拼音獲取,要是單位元組則不處理。

select elt(interval(conv(hex(tmp_char),16,10),0xb0a1,0xb0c5,0xb2c1,0xb4ee,0xb6ea,0xb7a2,0xb8c1,0xb9fe,0xbbf7,0xbfa6,0xc0ac

,0xc2e8,0xc4c3,0xc5b6,0xc5be,0xc6da,0xc8bb,0xc8f6,0xcbfa,0xcdda ,0xcef4,0xd1b9,0xd4d1),

'a','b','c','d','e','f','g','h','j','k','l','m','n','o','p','q','r','s','t','w','x','y','z') into tmp_cc; #獲得漢字拼音首字元

end if;

set tmp_rs = concat(tmp_rs,tmp_cc);#將當前tmp_str左端首個字元拼音首字元與返回字串拼接

set tmp_str = substring(tmp_str,2);#將tmp_str左端首字元去除

set tmp_len = length(tmp_str);#計算當前字串長度

end while;

return tmp_rs;#返回結果字串

end

漢字轉換拼音函式

呼叫convertpinyin 函式,引數為你要轉換的漢字 返回值就是轉換後的拼音 可以只返回首字母或者首字母大寫的全拼拼音 var phonetictranscriptionobj 漢字轉拼音 function convertpinyin chinesecharacter else if name...

漢字轉換拼音函式

呼叫convertpinyin 函式,引數為你要轉換的漢字 返回值就是轉換後的拼音 可以只返回首字母或者首字母大寫的全拼拼音 var phonetictranscriptionobj 漢字轉拼音 function convertpinyin chinesecharacter else if name...

sql函式 漢字轉換為拼音

sql資料庫 自定義乙個函式 把下面 寫進去 功能是得到漢字拼音首字母 如下 create function fun getpy str nvarchar 4000 returns nvarchar 4000 asbegin declare word nchar 1 py nvarchar 4000...