谁能用mysql语法写一个汉字转拼音的函数

发布网友 发布时间:2022-04-24 11:58

我来回答

4个回答

热心网友 时间:2022-04-10 15:54

自己造一个;
1、create table hanzi2pinyin (id int,hanzi varchar(20),pinyin varchar(20) );
insert into 所有汉字和PINYIN;
2、根据自己的需求创建一个函数,根据hanzi列返回pinyin列。追问问题就是怎么创建这个函数。

追答create table hanzi2pinyin (id int,hanzi char(20) binary,pinyin char(20),PRIMARY KEY (`id`));
insert into hanzi2pinyin values(1,'我','wo');
insert into hanzi2pinyin values(2,'是','shi');
insert into hanzi2pinyin values(3,'光','guang');

###################################################################
drop function pinyin;
DELIMITER $$
CREATE FUNCTION pinyin (n1 int) RETURNS CHAR(20) BEGIN
DECLARE pin char(20);
SET pin=(SELECT pinyin FROM hanzi2pinyin WHERE id=n1);
RETURN pin; END $$
DELIMITER ;
###################################################################
因为mysql对汉字做条件查询和排序的问题,你需要先确定汉字对应到id:
select pinyin('1');

热心网友 时间:2022-04-10 17:12

mysql没有这种函数,实现不了。我之前也为这事苦恼,最后用PHP实现的,http://blog.sina.com.cn/s/blog_6e637ea701016wb2.html 这个是我博客,文章中详细写出了怎么去实现汉字转拼音,希望能帮助你。

热心网友 时间:2022-04-10 18:46

1、create table hanzi2pinyin (id int,hanzi varchar(20),pinyin varchar(20) );
insert into 所有汉字和PINYIN;
2、根据自己的需求创建一个函数,根据hanzi列返回pinyin列。
代码如下:
CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
BEGIN
DECLARE V_RETURN VARCHAR(255);
SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),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');
RETURN V_RETURN;
END

热心网友 时间:2022-04-10 20:38

没有这种函数

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com