mysql通过函数获取汉字的首字母
程序员文章站
2023-02-20 12:51:16
今天在做一个项目,客户要求给每个地区创建一个账号,后来整体综合后发现有300多个地区,如果一个一个手工去创建,要搞S了,后来想了一个办法,根据地区的名称,创建首字母账号,用mysql函数可以实现如下为步骤1、创建一个获取汉字首字母的函数,如下所示BEGIN DECLARE V_RETURN VARCHAR(255); SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),...
今天在做一个项目,客户要求给每个地区创建一个账号,后来整体综合后发现有300多个地区,如果一个一个手工去创建,要搞S了,后来想了一个办法,根据地区的名称,创建首字母账号,用mysql函数可以实现如下为步骤
1、创建一个获取汉字首字母的函数,如下所示
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');
IF (ISNULL(V_RETURN) or V_RETURN = '') THEN
SET V_RETURN = P_NAME;
END IF;
RETURN V_RETURN;
END
二、创建一个拼音母的每个相连的函数(‘我很帅’=》'WHS")
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, ',', V_COMPARE);
SET V_RETURN = CONCAT(V_RETURN, fristPinyin(V_COMPARE));
#SET V_RETURN = fristPinyin(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
三、如果是需要转成小写,可以使用如下方法
select LOWER(getPinyin('中国人'));
希望对大家在工作上有一定的帮助。
本文地址:https://blog.csdn.net/weixin_44443884/article/details/108996292