MYSQL 传汉字获取拼音首字母
时间:2021-07-01 10:21:17
帮助过:32人阅读
获取单个汉字首字母拼音
--CREATE DEFINER=`by`@`%` FUNCTION `fun_first_pinyin`(`P_NAME` VARCHAR(5)) RETURNS varchar(5) CHARSET utf8 NO SQL
create function fun_first_py
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
--获取字符串汉字首字母拼音(基于上面的方法)
--CREATE DEFINER=`by`@`%` FUNCTION `fun_pinyin`(`P_NAME` VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 NO SQL
create function fun_py
BEGIN
DECLARE V_COMPARE
VARCHAR(
255);
DECLARE V_RETURN
VARCHAR(
255);
DECLARE I
INT;
SET I
= 1;
SET V_RETURN
= ‘‘;
while I
<= char_length(P_NAME) do
SET V_COMPARE
= SUBSTR(P_NAME, I,
1);
IF (V_COMPARE
!= ‘‘)
THEN
SET V_RETURN
= CONCAT(V_RETURN, fun_first_py(V_COMPARE));
END IF;
SET I
= I
+ 1;
end while;
IF (
ISNULL(V_RETURN)
or V_RETURN
= ‘‘)
THEN
SET V_RETURN
= P_NAME;
END IF;
RETURN V_RETURN;
END
亲测好用!
MYSQL 传汉字获取拼音首字母
标签:interval cti null 首字母 efi b2c convert returns 基于