本人提供的方法有如下特点:
1.代码精简,使用简单,只要会基本的SQL语句就行
2.不用建立mysql
函数等复杂的东西
3.汉字库最全,可查询20902个汉字
方法如下:
1、建立拼音首字母资料表
Sql代码:(最好再加上主键和索引)
- DROP TABLE IF EXISTS `pinyin`;
- CREATE TABLE `pinyin` (
- `PY` varchar(1),
- `HZ1` varchar(1),
- `HZ2` varchar(1)
- ) ;
- INSERT INTO `pinyin` (`PY`,`HZ1`,`HZ2`) VALUES
- (‘A‘,‘吖‘,‘驁‘),
- (‘B‘,‘八‘,‘簿‘),
- (‘C‘,‘嚓‘,‘錯‘),
- (‘D‘,‘咑‘,‘鵽‘),
- (‘E‘,‘妸‘,‘樲‘),
- (‘F‘,‘发‘,‘鰒‘),
- (‘G‘,‘猤‘,‘腂‘),
- (‘H‘,‘妎‘,‘夻‘),
- (‘J‘,‘丌‘,‘攈‘),
- (‘K‘,‘咔‘,‘穒‘),
- (‘L‘,‘垃‘,‘鱳‘),
- (‘M‘,‘嘸‘,‘旀‘),
- (‘N‘,‘丆‘,‘桛‘),
- (‘O‘,‘噢‘,‘漚‘),
- (‘P‘,‘妑‘,‘曝‘),
- (‘Q‘,‘七‘,‘囕‘),
- (‘R‘,‘呥‘,‘鶸‘),
- (‘S‘,‘仨‘,‘蜶‘),
- (‘T‘,‘他‘,‘籜‘),
- (‘W‘,‘屲‘,‘鶩‘),
- (‘X‘,‘夕‘,‘鑂‘),
- (‘Y‘,‘丫‘,‘韻‘),
- (‘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