这篇文章主要讲解了“mysql下怎么把中文翻译成汉语拼音”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql下怎么把中文翻译成汉语拼音”吧!
-- 创建一张表,存放汉字拼音对照数据
create table pinyin (
pin_yin varchar(128) character set gbk not null,
code int(11) not null,
primary key (code)
) engine=InnoDB ;
-- 创建函数
-- 建立汉字转换拼音函数
DROP FUNCTION IF EXISTS fu_pinyin;
DELIMITER $
CREATE FUNCTION fu_pinyin(NAME VARCHAR(255) CHARSET gbk)
RETURNS VARCHAR(255) CHARSET gbk
BEGIN
DECLARE mycode INT;
DECLARE tmp_lcode VARCHAR(2) CHARSET gbk;
DECLARE lcode INT;
DECLARE tmp_rcode VARCHAR(2) CHARSET gbk;
DECLARE rcode INT;
DECLARE mypy VARCHAR(255) CHARSET gbk DEFAULT '';
DECLARE lp INT;
SET mycode = 0;
SET lp = 1;
SET NAME = HEX(NAME);
WHILE lp < LENGTH(NAME) DO
SET tmp_lcode = SUBSTRING(NAME, lp, 2);
SET lcode = CAST(ASCII(UNHEX(tmp_lcode)) AS UNSIGNED);
SET tmp_rcode = SUBSTRING(NAME, lp + 2, 2);
SET rcode = CAST(ASCII(UNHEX(tmp_rcode)) AS UNSIGNED);
IF lcode > 128 THEN
SET mycode =65536 - lcode * 256 - rcode ;
SELECT CONCAT(mypy,pin_yin_) INTO mypy FROM t_base_pinyin WHERE CODE_ >= ABS(mycode) ORDER BY CODE_ ASC LIMIT 1;
SET lp = lp + 4;
ELSE
SET mypy = CONCAT(mypy,CHAR(CAST(ASCII(UNHEX(SUBSTRING(NAME, lp, 2))) AS UNSIGNED)));
SET lp = lp + 2;
END IF;
END WHILE;
RETURN LOWER(mypy);
END;
$
DELIMITER ;
-- 测试函数
select to_pinyin();select to_pinyin();
感谢各位的阅读,以上就是“mysql下怎么把中文翻译成汉语拼音”的内容了,经过本文的学习后,相信大家对mysql下怎么把中文翻译成汉语拼音这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。
大型站长资讯类网站! https://www.0817zz.com