1。创建拼音控制表

复制代码代码如下所示:
-创建一个汉语拼音控制的临时表
创建表不存在(` t_base_pinyin `
` pin_yin_ ` varchar(255)字符集不为空,
` code_ ` int(11)不为空,
主键(` code_ `)
InnoDB引擎=默认的字符集latin1);


两。将控制数据

复制代码代码如下所示:
插入数据
插入t_base_pinyin(pin_yin_,code_)值(,19263),(CI,18012),(沟(16433),坑7),(民429),(强(水徐 281)(邹


三。创建汉字转换语音功能

复制代码代码如下所示:
汉字转换语音功能的建立
如果存在to_pinyin功能下降;
为分隔符
创建功能to_pinyin(name varchar(255)字符集GBK)
返回varchar(255)字符集GBK
开始
声明mycode int;
声明tmp_lcode varchar(2)字符集GBK;
申报Lcode int;

声明tmp_rcode varchar(2)字符集GBK;
声明的int;

声明mypy varchar(255)字符集GBK默认;
声明LP;

集mycode = 0;
设置LP=1;

设置名称=十六进制(名称);

而LP长度(name)做

集tmp_lcode =子(名字,LP,2);
设置码=铸造(ASCII(unhex(tmp_lcode))为无符号);
集tmp_rcode =子(名字,LP + 2, 2);
集条码=铸造(ASCII(unhex(tmp_rcode))为无符号);
如果码> 128
SET mycode =65536 - lcode * 256 - rcode;
选择concat(mypy,pin_yin_)从t_base_pinyin哪里code_ ABS为mypy(mycode)序> =通过code_ ASC限制1;
设置LP = LP + 4;
其他的
集mypy = concat(mypy,char(CAST(ASCII(unhex(子串(名字,LP,2 )))))))
设置LP = LP + 2;
最后如果;
结束的时候;
收益低(mypy);
结束;
美元
分隔符;


四。使用方法

复制代码代码如下:选择to_pinyin(测试)
输出结果:
复制代码代码如下所示:
to_pinyin(测试)
测试