xiaofenl 发表于 2009-3-29 23:04:57

汉字转拼音首字母的 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啊。。。也太那个啥了吧。。

kider 发表于 2009-3-30 14:00:29

不错,赞!

java中也有这样的函数

xiaofenl 发表于 2009-3-31 00:28:19

本帖最后由 xiaofenl 于 2009-3-31 00:29 编辑

不错,赞!

java中也有这样的函数
kider 发表于 2009-3-30 14:00 http://www.mysqlpub.com/images/common/back.gif


Java的是内部函数吗

kider 发表于 2009-3-31 10:36:47

忘了,你找找吧,而且效率很高...

xiaofenl 发表于 2009-3-31 20:49:52

3Q!
页: [1]
查看完整版本: 汉字转拼音首字母的 Function