《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得到汉字拼音. 不过需要拼音表,函数写法也不一样. (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|