mysql 拼音查询_在mysql 里实现查询汉字的拼音首字母

本文介绍了如何在MySQL中创建一个表`pyk`用于存储汉字与拼音的对应关系,然后建立一个名为`hzcode`的函数,通过此函数可以获取汉字的拼音首字母。通过测试,成功实现了在MySQL中查询汉字首字母的功能。
摘要由CSDN通过智能技术生成

DROP TABLE IF EXISTS `pyk`;

CREATE TABLE `pyk` (

`PY` varchar(1) ,

`HZ1` int ,

`HZ2` int

) ;

INSERT INTO `pyk` (`PY`,`HZ1`,`HZ2`) VALUES

('A',-20319,-20284),

('B',-20283,-19776),

('C',-19775,-19219),

('D',-19218,-18711),

('E',-18710,-18527),

('F',-18526,-18240),

('G',-18239,-17923),

('I',-17922,-17418),

('J',-17417,-16475),

('K',-16474,-16213),

('L',-16212,-15641),

('M',-15640,-15166),

('N',-15165,-14923),

('O',-14922,-14915),

('P',-14914,-14631),

('Q',-14630,-14150),

('R',-14149,-14091),

('S',-14090,-13319),

('V',-13318,-12839),

('W',-12838,-12557),

('X',-12556,-11848),

('Y',-11847,-11056),

('Z',-11055,-10247);

2、建立mysql 函数

DROP FUNCTION IF EXISTS hzcode;

delimiter //

CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char

BEGIN

DECLARE hz_code int;

DECLARE hz_py char;

SET hz_code = ord(substring(s,1,1))*256+ord(substring(s,2,1))-65536 ;

select py into hz_py from pyk where hz_code>=pyk.hz1 and hz_code<=pyk

.hz2;

RETURN hz_py;

END

//

delimiter ;

3、先测试一下

mysql> select hzcode('南海龙王');

+--------------------+

| hzcode('南海龙王') |

+--------------------+

| N                  |

+--------------------+

1 row in set (0.00 sec)

4、建立个测试表

DROP TABLE IF EXISTS `f1`;

create table f1 (

name varchar(30),

pykey varchar(1)

);

insert into f1(name) values

('张三'),

('李四'),

('王五'),

('赵六'),

('钱七');

5、测试

mysql> select * from f1;

+------+-------+

| name | pykey |

+------+-------+

| 张三 | NULL  |

| 李四 | NULL  |

| 王五 | NULL  |

| 赵六 | NULL  |

| 钱七 | NULL  |

+------+-------+

5 rows in set (0.00 sec)

mysql> update f1 set pykey = hzcode(name);

Query OK, 5 rows affected (0.05 sec)

Rows matched: 5  Changed: 5  Warnings: 0

mysql> select * from f1;

+------+-------+

| name | pykey |

+------+-------+

| 张三 | Z     |

| 李四 | L     |

| 王五 | W     |

| 赵六 | Z     |

| 钱七 | Q     |

+------+-------+

5 rows in set (0.00 sec)

这样就很方便地在MYSQL里查询汉字的首字母了。 类似地也可以直接在MYSQL得到汉字拼音。 不过需要拼音表,函数写法也不一样。

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2008-02-20 14:36

浏览 5005

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值