mysql数据库中查询汉字的拼音首字母

时间:2022-01-27 08:02:23

本人提供的方法有如下特点:

1.代码精简,使用简单,只要会基本的SQL语句就行
2.不用建立mysql 函数等复杂的东西
3.汉字库最全,可查询20902个汉字

方法如下:

1、建立拼音首字母资料表
Sql代码:(最好再加上主键和索引)

  1. DROP TABLE IF EXISTS `pinyin`;  
  2. CREATE TABLE `pinyin` (        
  3.       `PY` varchar(1),        
  4.       `HZ1` varchar(1),     
  5.       `HZ2` varchar(1)  
  6. ) ;    
  7.   
  8. INSERT   INTO   `pinyin`   (`PY`,`HZ1`,`HZ2`)   VALUES  
  9. ('A','吖','驁'),  
  10. ('B','八','簿'),  
  11. ('C','嚓','錯'),  
  12. ('D','咑','鵽'),  
  13. ('E','妸','樲'),  
  14. ('F','发','鰒'),  
  15. ('G','猤','腂'),  
  16. ('H','妎','夻'),  
  17. ('J','丌','攈'),  
  18. ('K','咔','穒'),  
  19. ('L','垃','鱳'),  
  20. ('M','嘸','旀'),  
  21. ('N','丆','桛'),  
  22. ('O','噢','漚'),  
  23. ('P','妑','曝'),  
  24. ('Q','七','囕'),  
  25. ('R','呥','鶸'),  
  26. ('S','仨','蜶'),  
  27. ('T','他','籜'),  
  28. ('W','屲','鶩'),  
  29. ('X','夕','鑂'),  
  30. ('Y','丫','韻'),  
  31. ('Z','帀','咗');  

执行后检查添加的表中的数据记录是否有“?”问号,如果有则表示数据库编码有问题。
2、查询数据库表中汉字首字拼音字母
SELECT `pinyin`.py, `相应表` . *
FROM `相应表` , `pinyin`
WHERE `汉字标题` >= `hz1`
AND `汉字标题` <= `hz2` ;
也可以直接查询汉字的首字拼音字母
SELECT `pinyin`.py
FROM `pinyin`
WHERE '汉字' >= `hz1`
AND '汉字' <= `hz2` ;
查询结果是"H "

****注意****
此方法只适用于gbk的编码,其他的编码需要先转换成gbk的,可以用convert(words using gbk)

还可以用函数处理
CREATE   FUNCTION   firstPY(words   varchar(255))   RETURNS   mediumtext  
  BEGIN  
            declare   fpy   char(1);  
            declare   pc   char(1);  
            declare   cc   char(4);  
            set   @fpy   =   UPPER(left(words,1));  
            set   @pc   =   (CONVERT(@fpy   USING   gbk));  
            set   @cc   =   hex(@pc);  
            if   @cc   >=   "8140"   and   @cc   <="FEA0"   then  
                      begin  
                                select   py   into   @fpy   from   pinyin   where   hz2>=@pc   and hz1<=@pc;  
                      end;  
            end   if;  
            Return   @fpy;  
  END