在触发器写一下就OK了,很方便
begin
set NEW.NamePinYin=f_GetPY(NEW.Name);
end
函数 f_GetPY
BEGIN
declare fpy char(1);
declare pc char(1);
declare cc char(4);
DECLARE TempWords varchar(5000);
DECLARE i int;
DECLARE reStr varchar(5000);
set TempWords=words;
set i=1;
set reStr='';
while i <=CHAR_LENGTH(Words) do
set @fpy = UPPER(left(TempWords,1));
set @pc = (CONVERT(@fpy USING gbk));
set @cc = hex(@pc);
if @cc >= "8140 " and @cc <= "FEA0 " then
select PY into @fpy from HZ2PY where hz>=@pc limit 1;
end if;
set reStr=CONCAT(reStr,@fpy);
set TempWords=substr(words from i+1 for CHAR_LENGTH(words));
SET i=i+1;
END WHILE;
set @RePy=reStr;
Return @RePy;
END
表 HZ2PY
A 驁
B 簿
C 錯
D 鵽
E 樲
F 鰒
G 腂
H 夻
J 攈
K 穒
L 鱳
M 旀
N 桛
O 漚
P 曝
Q 囕
R 鶸
S 蜶
T 籜
W 鶩
X 鑂
Y 韻
Z 咗