Mysql应用MySQL查询汉字的拼音首字母实例教程

Mysql应用MySQL查询汉字的拼音首字母实例教程,第1张

概述介绍《Mysql应用MySQL查询汉字拼音首字母实例教程》开发教程,希望对您有用。

《MysqL应用MySQL查询汉字的拼音首字母实例教程》要点:
本文介绍了MysqL应用MySQL查询汉字的拼音首字母实例教程,希望对您有用。如果有疑问,可以联系我们。

导读:最好的方法还是用 PHP 来取拼音首字母,在 MysqL 里新建一个字段来存放PHP 里查询汉字的拼音首字母已经有很多参考的代码了.现在给出...

MysqL数据库最好的方法还是用 PHP 来取拼音首字母,在 MysqL 里新建一个字段来存放
PHP 里查询汉字的拼音首字母已经有很多参考的代码了.
现在给出在MysqL 里实现的,测试环境是MysqL-5.0.27-win32

MysqL数据库1、建立拼音首字母资料表
 

MysqL数据库DROP table IF EXISTS `pyk`;
CREATE table `pyk` (
`PY` varchar(1),
`HZ1` int,
`HZ2` int
) ;

MysqL数据库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),
('H',-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),
('T',-13318,-12839),
('W',-12838,-12557),
('X',-12556,-11848),
('Y',-11847,-11056),
('Z',-11055,-10247);
 

MysqL数据库2、建立MysqL 函数
 

MysqL数据库DROP FUNCTION IF EXISTS hzcode;

MysqL数据库delimiter //

MysqL数据库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
//

MysqL数据库delimiter ;
数 据库类型如果是GBK的时候,这个函数好像有点小问题,稍微改动了下,貌似可以在GBK中使用了

MysqL数据库delimiter $$
DROP FUNCTION IF EXISTS `hzcode`$$
CREATE FUNCTION `hzcode` (s CHAR(255)) RETURNS char
BEGIN
DECLARE hz_code int;
DECLARE hz_py char;
declare str varchar(400);
SET hz_code = ord(substring(s,1))-65536 ;
select py into hz_py from pyk where hz_code>=pyk.hz1 and hz_code<=pyk.hz2;
RETURN hz_py;

MysqL数据库END$$
delimiter $$
 

MysqL数据库3、测试
 

MysqL> select hzcode('南海龙王');
+--------------------+
| hzcode('南海龙王') |
+--------------------+
| N |
+--------------------+
1 row in set (0.00 sec)

MysqL数据库4、建立个测试表
 

MysqL数据库DROP table IF EXISTS `f1`;
create table f1 (
name varchar(30),
pykey varchar(1)
);

MysqL数据库insert into f1(name) values
('张三'),
('李四'),
('王五'),
('赵六'),
('钱七');
 

MysqL数据库5、测试
 

MysqL数据库MysqL> select * from f1;
+------+-------+
| name | pykey |
+------+-------+
| 张三 | NulL |
| 李四 | NulL |
| 王五 | NulL |
| 赵六 | NulL |
| 钱七 | NulL |
+------+-------+
5 rows in set (0.00 sec)

MysqL数据库MysqL> update f1 set pykey = hzcode(name);
query OK,5 rows affected (0.05 sec)
Rows matched: 5 Changed: 5 Warnings: 0

MysqL数据库MysqL> select * from f1;
+------+-------+
| name | pykey |
+------+-------+
| 张三 | Z |
| 李四 | L |
| 王五 | W |
| 赵六 | Z |
| 钱七 | Q |
+------+-------+
5 rows in set (0.00 sec)

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

总结

以上是内存溢出为你收集整理的Mysql应用MySQL查询汉字的拼音首字母实例教程全部内容,希望文章能够帮你解决Mysql应用MySQL查询汉字的拼音首字母实例教程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1158307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存