MySQL社区

标题: 汉字转拼音首字母的 Function [打印本页]

作者: xiaofenl    时间: 2009-3-29 23:04
标题: 汉字转拼音首字母的 Function
本帖最后由 xiaofenl 于 2011-2-7 22:59 编辑

DELIMITER $$
DROP FUNCTION IF EXISTS `py`$$
CREATE    FUNCTION `py`(a NVARCHAR(80)) RETURNS VARCHAR(80) CHARSET utf8
BEGIN
    DECLARE i INT DEFAULT 1 ;
    DECLARE strlen INT DEFAULT LENGTH(a);
    DECLARE str1 NVARCHAR(2) DEFAULT '';
    DECLARE outstr NVARCHAR(80) DEFAULT '';
    WHILE i<=strlen DO
       SELECT py_code INTO str1 FROM basic_pinyin WHERE `CHINESE`=(SUBSTRING(a,i,1));
       SET outstr=CONCAT(outstr,str1);
       SET str1='';
       SET i=i+1;
    END WHILE;
    SET outstr= UCASE(outstr);
    RETURN outstr;
END$$
DELIMITER ;

效率不是很高,哪位大侠可以指点下,怎么改进比较好?

=====================================================================
老贴,今天没事做,把数据表补上。好像共有2万多中文字。。。。。改了下索引,效率高很多了。。。哦还有,怎限制只能传5K啊。。。也太那个啥了吧。。

pycode.part19.rar

3.33 KB, 下载次数: 2593

pycode.part01.rar

4.88 KB, 下载次数: 2471

pycode.part02.rar

4.88 KB, 下载次数: 2385

pycode.part03.rar

4.88 KB, 下载次数: 2410

pycode.part04.rar

4.88 KB, 下载次数: 2457

pycode.part05.rar

4.88 KB, 下载次数: 2331

pycode.part06.rar

4.88 KB, 下载次数: 2384

pycode.part07.rar

4.88 KB, 下载次数: 2432

pycode.part08.rar

4.88 KB, 下载次数: 2211

pycode.part09.rar

4.88 KB, 下载次数: 2434

pycode.part10.rar

4.88 KB, 下载次数: 2467

pycode.part11.rar

4.88 KB, 下载次数: 2120

pycode.part12.rar

4.88 KB, 下载次数: 2243

pycode.part13.rar

4.88 KB, 下载次数: 2226

pycode.part14.rar

4.88 KB, 下载次数: 2152

pycode.part15.rar

4.88 KB, 下载次数: 2285

pycode.part16.rar

4.88 KB, 下载次数: 2203

pycode.part17.rar

4.88 KB, 下载次数: 2048

pycode.part18.rar

4.88 KB, 下载次数: 2289


作者: kider    时间: 2009-3-30 14:00
不错,赞!

java中也有这样的函数
作者: xiaofenl    时间: 2009-3-31 00:28
本帖最后由 xiaofenl 于 2009-3-31 00:29 编辑
不错,赞!

java中也有这样的函数
kider 发表于 2009-3-30 14:00



Java的是内部函数吗
作者: kider    时间: 2009-3-31 10:36
忘了,你找找吧,而且效率很高...
作者: xiaofenl    时间: 2009-3-31 20:49
3Q!




欢迎光临 MySQL社区 (http://www.mysqlpub.com/) Powered by Discuz! X3.2