专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

MySQL实现汉字转拼音,赶快一起学起来

  今天接到一个新的业务需求,客户需要将指定的中文汉字转换成拼音(含:简拼、首全拼、尾全拼)。1。创建基础数据表
  Tablestructureforbstwbjq
  DROPTABLEIFEXISTSbstwbjq;
  CREATETABLEbstwbjq(
  CHARACTORvarchar(200)NOTNULL,
  WORDvarchar(100)NOTNULL,
  CODEvarchar(100)DEFAULTNULL,
  STROKEvarchar(200)DEFAULTNULL
  )ENGINEInnoDBDEFAULTCHARSETutf8;
  Tablestructurefortblpinyin
  DROPTABLEIFEXISTStblpinyin;
  CREATETABLEtblpinyin(
  SNbigint(20)NOTNULL,
  WORDvarchar(200)NOTNULL,
  PYvarchar(200)NOTNULL,
  PYLEVELint(11)DEFAULTNULL
  )ENGINEInnoDBDEFAULTCHARSETutf8;2。插入基础数据记录
  Recordsofbstwbjq
  truncatetablebstwbjq;
  INSERTINTObstwbjqVALUES(禅,C,P,K);
  INSERTINTObstwbjqVALUES(讶,Y,Y,2T);
  INSERTINTObstwbjqVALUES(焉,Y,G,Pa);
  INSERTINTObstwbjqVALUES(阉,Y,U,V2);
  INSERTINTObstwbjqVALUES(烟,Y,O,Ng);
  INSERTINTObstwbjqVALUES(淹,Y,I,V);
  INSERTINTObstwbjqVALUES(圊,Q,L,Rz);
  INSERTINTObstwbjqVALUES(圉,Y,L,S?);
  INSERTINTObstwbjqVALUES(帔,P,M,;);
  。。。。。。。。
  commit;
  Recordsoftblpinyin
  truncatetabletblpinyin;
  INSERTINTOtblpinyinVALUES(33641,胫,jing4,0);
  INSERTINTOtblpinyinVALUES(30749,箅,bi4,0);
  INSERTINTOtblpinyinVALUES(30750,箢,yuan1,0);
  INSERTINTOtblpinyinVALUES(30751,篁,huang2,0);
  INSERTINTOtblpinyinVALUES(30752,篦,bi4,0);
  INSERTINTOtblpinyinVALUES(30753,篾,mie4,0);
  INSERTINTOtblpinyinVALUES(30754,簋,gui3,0);
  INSERTINTOtblpinyinVALUES(30755,簪,zan1,0);
  INSERTINTOtblpinyinVALUES(30756,籀,zhou4,0);
  INSERTINTOtblpinyinVALUES(30757,舄,xi4,0);
  INSERTINTOtblpinyinVALUES(30758,舢,shan1,0);
  INSERTINTOtblpinyinVALUES(30759,舨,ban3,0);
  。。。。。。。。
  commit;3。创建汉字转拼音函数(存储过程、函数)3。1。创建存储过程:PRCGETPYM
  procedurestructureforPRCGETPYM
  delimiter
  dropprocedureifexistsPRCGETPYM;
  createprocedurePRCGETPYM(INVNAMEvarchar(256),OUTVPYMvarchar(256))
  begin
  declareiintdefault1;
  declarejintdefault0;
  declareVPINYINTEMPVARCHAR(70);
  declareVNAMETEMPvarchar(200);
  declareVNAMESINvarchar(10);
  declareVPINYINSINvarchar(10);
  declarevcounter1int(8);
  替换各种特殊符号
  selectreplace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(VNAME,
  ,A),,B),,C),,D),,E),,F),,G),,H),
  ,I),,J),,K),,L),,M),,N),,O),,P),
  ,Q),,R),,S),,T),,U),,V),,W),,X),
  ,Y),,Z),,),,),,),,),
  〔,),〕,),{,),},),(,),),),
  ,),,),《,),》,),(,),),),,),
  ,),,),。,),。,),,),,),,),
  ,),,),,),,一),,二),,三),
  ,四),,五),,六),,七),,八),,九),,零)R3
  intoVNAMETEMP
  fromdual;
  循环获得字符串拼音码
  myloop:loop
  ifVNAMEisnullthen
  leavemyloop;
  endif;
  selectsubstr(VNAMETEMP,i,1)intoVNAMESINfromdual;
  setii1;
  ifVNAMESINthen
  selectcount()
  intovcounter1
  frombstwbjq
  wherebstwbjq。charactorvnamesin;
  ifvcounter10then
  selectWORD
  intoVPINYINSIN
  frombstwbjq
  wherebstwbjq。CHARACTORVNAMESIN
  limit1;
  selectconcatws(,VPINYINTEMP,VPINYINSIN)
  intoVPINYINTEMP
  fromdual;
  endif;
  endif;
  selectcharlength(VNAME)intojfromdual;
  ifijthen
  leavemyloop;
  endif;
  endloop;
  截取32位长度字符
  ifcharlength(VPINYINTEMP)32then
  selectsubstr(VPINYINTEMP,1,32)intoVPYMfromdual;
  else
  selectVPINYINTEMPintoVPYMfromdual;
  endif;
  end;
  delimiter;3。2。创建存储过程:SPPINYIN
  procedurestructureforSPPINYIN
  delimiter
  dropprocedureifexistsSPPINYIN;
  createprocedureSPPINYIN(INhanzivarchar(256),OUTpinyinvarchar(256))
  begin
  declareawordvarchar(200);
  declarearesultvarchar(200);
  declaretemp1varchar(20);
  declarelenintdefault0;
  declarepointintdefault1;
  declarecharwordvarchar(20);
  declarecharlenintdefault1;
  定义游标标志变量
  declaredoneintdefaultfalse;
  定义游标
  declarecurpinyincursorfor
  selectPYfromTBLPINYIN
  wherewordsubstr(aword,point,charlen);
  指定游标循环结束时的返回值
  declarecontinueHANDLERfornotfoundsetdonetrue;
  selectltrim(rtrim(hanzi))intoawordfromdual;
  selectcharlength(aword)intolenfromdual;
  LABEL1
  whilepointlendo
  selectintotemp1fromdual;
  selectsubstr(aword,point,1)intocharwordfromdual;
  if(charwordisnotnullandcharword!)then
  selectconcatws(,aresult,charword)intoaresultfromdual;
  else
  select2intocharlenfromdual;
  endif;
  打开游标
  opencurpinyin;
  开始循环处理游标里的数据
  readloop:loop
  获得游标当前指向的一条数据
  fetchcurpinyinintotemp1;
  判断游标的循环是否结束
  ifdonethen
  leavereadloop;
  endif;
  endloop;结束游标循环
  关闭游标
  closecurpinyin;
  if(point1)then
  setaresulttemp1;
  else
  selectconcatws(,aresult,temp1)intoaresultfromdual;
  endif;
  selectpointcharlenintopointfromdual;
  endwhile;
  输出结果
  selectaresultintopinyinfromdual;
  end;
  delimiter;3。3。创建函数:topinyin
  functionstructurefortopinyin
  delimiter
  dropfunctionifexiststopinyin;
  createfunctiontopinyin(vhanzivarchar(256),vtypeint)
  returnsvarchar(256)
  begin
  declarestrTempVARCHAR(200);
  declarestrResultVARCHAR(200);
  declarestrHanziVARCHAR(200);
  declarestrTemp1VARCHAR(200);
  declarevsubbVARCHAR(100);
  declareVNAMETEMPVARCHAR(200);
  declarevpinyinVARCHAR(200);
  替换各种特殊符号
  selectreplace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
  replace(replace(replace(replace(replace(replace(replace(replace(vhanzi,
  ,A),,B),,C),,D),,E),,F),,G),,H),
  ,I),,J),,K),,L),,M),,N),,O),,P),
  ,Q),,R),,S),,T),,U),,V),,W),,X),
  ,Y),,Z),,),,),,),,),
  〔,),〕,),{,),},),(,),),),
  ,),,),《,),》,),(,),),),,),
  ,),,),。,),。,),,),,),,),
  ,),,),,),,一),,二),,三),
  ,四),,五),,六),,七),,八),,九),,零)R3
  intoVNAMETEMP
  fromdual;
  ifvtype1then简拼
  setVNAMETEMPVNAMETEMP;
  setstrResultnull;
  callPrcGetPym(VNAMETEMP,strResult);
  elseifvtype2then尾全拼
  判断结尾字符是否是中文
  selectltrim(rtrim(substr(VNAMETEMP,charlength(VNAMETEMP),charlength(VNAMETEMP))))
  intovsubb
  fromdual;
  ifvsubbisnullthen如果不是中文则直接生成开口码
  setVNAMETEMPVNAMETEMP;
  setstrResultnull;
  callPrcGetPym(VNAMETEMP,strResult);
  else
  selectsubstr(VNAMETEMP,1,charlength(VNAMETEMP)1)intostrHanzifromdual;
  setstrHanzistrHanzi;
  setstrTemp1null;
  callPrcGetPym(strHanzi,strTemp1);
  selectsubstr(VNAMETEMP,charlength(VNAMETEMP),charlength(VNAMETEMP))intostrHanzifromdual;
  setstrHanzistrHanzi;
  setstrTempnull;
  callSpPinyin(strHanzi,strTemp);
  selectsubstr(strTemp,1,charlength(strTemp)1)intostrResultfromdual;
  selectconcatws(,strTemp1,strResult)intostrResultfromdual;
  endif;
  elseifvtype3then首全拼
  判断开头字符是否是中文
  selectltrim(rtrim(substr(VNAMETEMP,1,1)))intovsubbfromdual;
  ifvsubbisnullthen如果不是中文则直接生成开口码
  setVNAMETEMPVNAMETEMP;
  setstrResultnull;
  callPrcGetPym(VNAMETEMP,strResult);
  else
  selectsubstr(VNAMETEMP,2,charlength(VNAMETEMP))intostrHanzifromdual;
  setstrHanzistrHanzi;
  setstrResultnull;
  callPrcGetPym(strHanzi,strResult);
  selectsubstr(VNAMETEMP,1,1)intostrHanzifromdual;
  setstrHanzistrHanzi;
  setstrTempnull;
  callSpPinyin(strHanzi,strTemp);
  selectconcatws(,substr(strTemp,1,charlength(strTemp)1),strResult)intostrResultfromdual;
  endif;
  endif;
  setvpinyinUPPER(strResult);
  returnvpinyin;
  end;
  delimiter;4。使用方法案例

这场雪地足球邀请赛,看看是谁夺冠原标题这场雪地足球邀请赛,看看是谁夺冠1月8日,由长春莲花山生态旅游度假区管委会与长春市足球协会联合主办的第三届莲花山雪地足球锦标赛暨2022年春城杯雪地足球邀请赛在长春冰雪新天地吴忠至银川城际公交5号线开通试运行来源中国交通新闻网为让更多的老百姓享受到政府的惠民政策,在宁夏交通运输厅吴忠市政府吴忠市交通运输局的大力支持下,1月6日,吴忠至银川城际公交5号线开通试运行,全程高速运行。吴忠至银北京小长假去哪玩?北京周边自驾游10个好去处推荐,你去过几个?临近春节,很多朋友都在计划着春节小长假去哪玩?北京作为,除了拥有众多名胜古迹,北京周边也有很多值得去的旅游景点,很适合来一场轻松休闲的自驾游,享受难得的假日美好时光。下面就给大家推游客增多聊城景区旅游升温游客在聊城海底世界海底隧道参观本报讯(文图记者张承斌)1月7日,在聊城海底世界,不少市民带着孩子游玩。记者了解到,新春佳节临近,除聊城海底世界外,我市九州洼月季公园滨河野生动物世界2022回眸小巷故事风帆路赏心悦目就很幸福精巧别致的街角公园充满现代感。如今漫步在风帆路(阳光大街至翠园街段)上,一股温柔浪漫的文艺气息,让人忍不住驻足欣赏流连忘返。精巧别致的街角公园美化心灵的墙面彩绘整洁漂亮的绿化景观,带着孙女看世界(四)乘坐邮轮去东瀛(4)文图老理行我们6天5晚的上海日本之游,其大部分时间是在船上度过的。而下船到日本的八代北九州游览,仅有两个半天时间。登船之前我一直在想,这邮轮多数时间是在浩瀚的海洋上行驶,周围都是茫各地特色活动亮点多文旅消费复苏回暖央视网消息在假期里,围绕冰雪运动赏灯夜游等主题,多地还举办了形式多样的特色活动,推动文旅相关产业复苏回暖。从百米高的雪道俯冲而下,在坡面来个单板旋转。元旦期间,河北崇礼各大雪场迎来伊犁天山环线头条创作挑战赛不到伊犁不知天山之美,有这么一条线路串联了伊犁河谷与天山山脉,将新疆的美景浓缩与此。它位于新疆中部,环绕北天山与伊犁河谷,也串联了伊犁大半个美景,这期菲夜将给大家介绍2023年精彩不断香港迪士尼乐园向奇妙出发1月8日,内地与香港多个口岸开始分阶段有序恢复人员正常往来。香港迪士尼乐园度假区(香港迪士尼)以全新面貌为游客准备了向奇妙出发限量礼遇及玲娜贝儿度假套票邀请内地游客,一起向奇妙出发中国旅客回归泰国,旅游平台们开直播搞营销推荐旅游产品首批中国旅客受到泰国官方欢迎携程旅行供图中国入境政策调整后,1月9日,泰国迎来首批中国旅客。当日1317,厦航MF833厦门曼谷航班搭载269名旅客落地曼谷素万那普机场,泰国副总理百场活动千万补贴!与新区邂逅百场奇遇小伙伴们注意啦!自1月1日起至3月31日西海岸新区发起以2023西游季,等你邂逅100场奇遇为主题的2023青岛西海岸福兔迎春消费季!小宣了解到,本次福兔迎春消费季包含饕餮西海岸温
印度女孩远嫁安徽农民,8年后回娘家探亲,让妹妹嫁给丈夫表弟我的愿望是嫁个中国男人!印度女孩所罗门莫迪娜历尽千辛来到中国后,深深地被中国文化所吸引。于是,在她21岁生日的时候,许下了这样一个愿望。之前在印度的时候,所罗门莫迪娜从出生就被划分集赞美如画!东莞这企石八景好看又好玩魅力企石,生态美镇。位于东莞东部片区的企石镇,拥有一湖(东清湖)两河(东江东引河)三岸(东江南岸东引河两岸)四脉(虾公山飞鹅岭金校椅山虎斑岭)以及大大小小的山林湖泊河涌等山水资源,吴亦凡海外社交网络动态频繁,是否已经出狱?网友分析炸锅知名艺人吴亦凡在去年8月因为涉嫌强奸罪被警方批捕,刑事拘留在北京看守所中,之后便音信全无,完全消失在了观众荧幕前。但是,在事情时隔10个月之后,却有网友发现,吴亦凡海外的推特脸书以外媒拜登在涉台问题上失言,在场官员们惊了文观察者网刘程辉拜登的国安官员们仔细听着他对台湾问题的回答,可当他明确承诺要军事保卫台湾时,一些官员不由得低下了头在23日的报道中,路透社这样描述起发布会当时的场景。在这场和日本首6种花最怕换盆,一换盆就死,踩准时间干,开花无数年很多人在家里养花,总是喜欢把花卉植物养在漂亮的花盆中,但是在花店里,很多花卉植物都是带着非常简易的营养钵,又黑又薄又难看,所以买了花卉第一件事就是给植物换盆。本以为换了大的花盆儿,还在一起?李小璐PG1疑用暗号传情,秀恩爱遭网友抓包今天,PG1久违露面晒出自己的自拍照,并且还分享了自己和小猫咪的画面,不少粉丝们都前来围观。这一次PG1露面看上去有点略微发福,不少网友们还调侃PG1是不是谈恋爱了,因为最近很忙很行业卷王!千元机就有天玑8100120W快充顶级LCD屏,联名阿童木你还记得Redmi第一次和动画联名是什么吗?答案是可爱的初音。当时RedmiNote4X在情人节首发,立刻引起了粉丝们的追捧,在全球也广受好评。初音是拥有全球影响力的电子歌手,对于境遇大不相同?拜登公开支持日本入常,韩国却吃到美国闭门羹5月23日,刚结束访问韩国不久的拜登,便马不停蹄地赶往日本。拜登此行的目的主要有二。第一启动所谓的印太经济框架(IPEF)。当天下午,拜登和日本首相岸田文雄印度总理莫迪在东京举行I大陆警告将说到做到后,美国态度变了,拒绝将台纳入印太经济框架最近,美国对台海问题的干涉达到了一波小高潮,先是搞对台军售,接着议员组团窜访,最后又放风要将台湾地区纳入美国对华遏制的计划中,吸纳其成为印太经济框架的成员。华盛顿一再挑衅的行为无疑美国另起灶炉,封锁中国经济?拜登亚洲之行,剑指中国。俄乌战争的爆发,让美国成功地团结了欧盟,孤立了俄罗斯,还恐吓到了亚太的日韩。在美国不遗余力地援助下,俄乌战争已经演变成持久战。俄罗斯已经被牵制在了东欧战场上小学生为防妈妈偷窥,全程英文聊天,以为自动加密,不料败给学历当今社会发展迅速,孩子们成熟时期也越来越早。更早地想要独立性和隐私性。有时为了保护自己的隐私,不得不与家长斗智斗勇。殊不知,有时自己以为天衣无缝的聊天记录,早早就已经被父母给识破。
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网