在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个字符。

相关推荐