MySQL 漢字轉拼音

來源:互聯網
上載者:User

標籤:blog   rom   interval   arch   中國   val   漢字   hex   substr   

一 . fristPinyin : 此函數是將一個中文字串的第一個漢字轉成拼音字母 (例如:"中國人"->Z)

CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8BEGIN    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

二.pinyin :此函數是將一個中文字串對應拼音母的每個相連 (例如:"中國人"->ZGR)

CREATE FUNCTION `pinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8BEGIN    DECLARE V_COMPARE VARCHAR(255);    DECLARE V_RETURN VARCHAR(255);    DECLARE I INT;    SET I = 1;    SET V_RETURN = ‘‘;    while I < 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

樣本:

mysql> select p.province, fristPinyin(p.province), pinyin(p.province) from province p;
+------------------+-------------------------+--------------------+
| province         | fristPinyin(p.province) | pinyin(p.province) |
+------------------+-------------------------+--------------------+
| 北京市           | B                       | BJS                |
| 天津市           | T                       | TJS                |
| 河北省           | H                       | HBS                |
| 山西省           | S                       | SXS                |
| 內蒙古自治區     | N                       | NMGZZQ             |
+------------------+-------------------------+--------------------+
5 rows in set

MySQL 漢字轉拼音

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.