娇w兴 发表于 2016-10-23 02:51:09

在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个字符。
  
页: [1]
查看完整版本: 在MySQL中获取中文的拼音或转换中文为拼音