收起左侧

    [其他教程] mysql 中如何取得汉字字段的各汉字首字母

    16
    回复
    2805
    查看
    [复制链接]

    管理员

    3548

    主题

    3597

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    16389

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-9-20 17:13:30 | 显示全部楼层 |阅读模式
    [color=white !important][backcolor=rgb(108, 226, 108) !important]
    [color=white !important]?

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    DROP FUNCTION IF EXISTS `getPY`;
    DELIMITER ;;
    CREATE FUNCTION `getPY`(in_string VARCHAR(65534)) RETURNS mediumtext CHARSET utf8
    BEGIN
    DECLARE tmp_str VARCHAR(65534) charset gbk DEFAULT '' ; #截取字符串,每次做截取后的字符串存放在该变量中,初始为函数参数in_string值
    DECLARE tmp_len SMALLINT DEFAULT 0;#tmp_str的长度
    DECLARE tmp_char VARCHAR(2) charset gbk DEFAULT '';#截取字符,每次 left(tmp_str,1) 返回值存放在该变量中
    DECLARE tmp_rs VARCHAR(65534) charset gbk DEFAULT '';#结果字符串
    DECLARE tmp_cc VARCHAR(2) charset gbk DEFAULT '';#拼音字符,存放单个汉字对应的拼音首字符
    SET tmp_str = in_string;#初始化,将in_string赋给tmp_str
    SET tmp_len = LENGTH(tmp_str);#初始化长度
    WHILE tmp_len > 0 DO #如果被计算的tmp_str长度大于0则进入该while
    SET tmp_char = LEFT(tmp_str,1);#获取tmp_str最左端的首个字符,注意这里是获取首个字符,该字符可能是汉字,也可能不是。
    SET tmp_cc = tmp_char;#左端首个字符赋值给拼音字符
    IF LENGTH(tmp_char)>1 THEN#判断左端首个字符是多字节还是单字节字符,要是多字节则认为是汉字且作以下拼音获取,要是单字节则不处理。
    SELECT ELT(INTERVAL(CONV(HEX(tmp_char),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') INTO tmp_cc; #获得汉字拼音首字符
    END IF;
    SET tmp_rs = CONCAT(tmp_rs,tmp_cc);#将当前tmp_str左端首个字符拼音首字符与返回字符串拼接
    SET tmp_str = SUBSTRING(tmp_str,2);#将tmp_str左端首字符去除
    SET tmp_len = LENGTH(tmp_str);#计算当前字符串长度
    END WHILE;
    RETURN tmp_rs;#返回结果字符串
    END;;
    DELIMITER ;



    温馨提示:
    1、本站所有信息都来源于互联网有违法信息与本网站立场无关。
    2、当有关部门,发现本论坛有违规,违法内容时,可联系站长删除,否则本站不承担任何责任。
    3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
    4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    5、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    6、如果使用本帖附件,本站程序只提供学习使用,请24小时内删除!使用者搭建运营触犯法律,违法,违规,本站不承担任何责任。
    回复

    使用道具 举报

    注册会员

    0

    主题

    13

    帖子

    95

    积分

    注册会员

    Rank: 2

    积分
    95
    发表于 2015-9-20 17:50:48 | 显示全部楼层
    不错不错
    回复 支持 反对

    使用道具 举报

    注册会员

    0

    主题

    9

    帖子

    75

    积分

    注册会员

    Rank: 2

    积分
    75
    发表于 2015-9-20 17:20:28 | 显示全部楼层
    这个是好东西。
    回复 支持 反对

    使用道具 举报

    注册会员

    0

    主题

    8

    帖子

    64

    积分

    注册会员

    Rank: 2

    积分
    64
    发表于 2015-9-20 18:03:01 | 显示全部楼层
    支持,赞一个支持,赞一个
    回复 支持 反对

    使用道具 举报

    注册会员

    0

    主题

    17

    帖子

    97

    积分

    注册会员

    Rank: 2

    积分
    97
    发表于 2015-9-20 17:31:44 | 显示全部楼层
    看看怎么样,希望会不错的
    回复 支持 反对

    使用道具 举报

    注册会员

    0

    主题

    13

    帖子

    95

    积分

    注册会员

    Rank: 2

    积分
    95
    发表于 2015-9-20 17:54:06 | 显示全部楼层
    大人,此事必有蹊跷!
    回复 支持 反对

    使用道具 举报

    注册会员

    0

    主题

    16

    帖子

    95

    积分

    注册会员

    Rank: 2

    积分
    95
    发表于 2015-9-20 17:43:34 | 显示全部楼层
    顶顶多好
    回复 支持 反对

    使用道具 举报

    注册会员

    0

    主题

    6

    帖子

    59

    积分

    注册会员

    Rank: 2

    积分
    59
    发表于 2015-9-20 18:10:17 | 显示全部楼层
    这个源码真好!
    回复 支持 反对

    使用道具 举报

    注册会员

    0

    主题

    13

    帖子

    83

    积分

    注册会员

    Rank: 2

    积分
    83
    发表于 2015-9-20 17:54:38 | 显示全部楼层
    这么强,支持楼主,佩服
    回复 支持 反对

    使用道具 举报

    注册会员

    0

    主题

    16

    帖子

    93

    积分

    注册会员

    Rank: 2

    积分
    93
    发表于 2015-9-20 17:43:15 | 显示全部楼层
    前排支持下了哦~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在线客服
    热线电话

    微信扫一扫
    专注源码分享6年
    全国免费热线电话

    400-225-995

    周一至周日9:00-23:00

    反馈建议

    a5887776@163.com 在线QQ咨询

    Powered by Discuz! X3.4 Licensed © 2001-2013 Comsenz Inc.