在MySQL中获取中文的拼音或转换中文为拼音

MySQL

-------------------------------------

分页:select * from xxx limit 0,10

        limit start,pagesize

 

-------------------------------------

 

INSERT INTO person_info

 

SELECT

  u.uid,

  u.displayname,

  

          ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(u.displayname 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') AS PY,

  

  REPLACE(REPLACE(ui.sex, '男', '1'),'女','0'),

  CONCAT(ui.birth_year,'-',ui.birth_month,'-',ui.birth_day),

  ui.residence_city,

  ui.createdate,

  ui.createdate

FROM USER u,

  user_info ui

WHERE u.type = 1

    AND u.uid = ui.uid

 

-------------------------------------

在MySQL中获取中文的拼音或转换中文为拼音

 

示例:

1        Select *,

2        ELT(INTERVAL(CONV(HEX(left(CONVERT(FieldName USING gbk),1)),16,10),

3        0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,

4        0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6,

5        0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),

6        'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P',

7        'Q','R','S','T','W','X','Y','Z') as PY

8        FROM DataTable

 

说明:

 

ELT(N,str1,str2,str3,…)

若N = 1,则返回值为 str1 ,若N = 2,则返回值为 str2 ,以此类推。

 

INTERVAL(N,N1,N2,N3,…)

N1,N2,N3,…为递增的有序整数。函数返回N在有序整数中的位置。

 

CONV(N,from_base,to_base)

不同数基间转换数字。返回值为数字的N字符串表示,由from_base基转化为 to_base 基。本例中为将十六进制转换为十进制。

 

CONVERT(FieldName USING gbk)

将数据转换为gbk字符集。

 

HEX(CHAR)

返回字符的十六进制数。

 

LEFT(STR,N)

取STR字符串左边开始的N个字符。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL本身不支持中文拼音首字母的转换,但可以借助第三方库或插件实现。 一种常用的方法是使用MySQL的UDF(User-Defined Function)机制,通过编写自定义函数来实现中文拼音首字母的转换。 以下是一个使用MySQL UDF实现中文拼音首字母转换的示例: 1. 安装pinyin库 pinyin是一个基于Python的中文拼音转换库,可以将汉字转换拼音。 首先需要安装pinyin库,可以使用pip命令进行安装: ``` pip install pinyin ``` 2. 编写MySQL UDF 使用Python编写一个将中文字符串转换拼音首字母的函数,并将其封装为MySQL UDF。 ```python import pinyin from mysql.connector import connect, Error def pinyin_first_letter(s): pinyin_list = pinyin.lazy_pinyin(s, style=pinyin.Style.FIRST_LETTER) return ''.join(pinyin_list) def mysql_pinyin_first_letter(s): conn = connect( user='root', password='password', host='localhost', database='test' ) cursor = conn.cursor() cursor.execute("SELECT pinyin_first_letter('%s')" % s) result = cursor.fetchone()[0] cursor.close() conn.close() return result ``` 将上述代码保存为一个Python文件,例如pinyin_udf.py。 3. 编译MySQL UDF 使用MySQL提供的插件编译器(plugin_compile)将Python函数编译为MySQL UDF。 ```sh plugin_compile -i python -o mysql pinyin_udf.py ``` 如果编译成功,将在当前目录下生成一个名为pinyin_udf.so的文件。 4. 加载MySQL UDF 将编译生成的pinyin_udf.so文件复制到MySQL插件目录下,例如: ```sh sudo cp pinyin_udf.so /usr/lib/mysql/plugin/ ``` 在MySQL客户端执行以下命令加载UDF: ```sql CREATE FUNCTION pinyin_first_letter RETURNS STRING SONAME 'pinyin_udf.so'; ``` 5. 使用MySQL UDF 现在可以通过调用pinyin_first_letter函数来将中文字符串转换拼音首字母了: ```sql SELECT pinyin_first_letter('国'); -- 返回 'zg' SELECT pinyin_first_letter('华人民共和国'); -- 返回 'zhrmghg' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值