1、建立拼音首字母资料表
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得到汉字拼音。 不过需要拼音表,函数写法也不一样。
分享到:
相关推荐
使用MySQL函数,实现获取汉字拼音首字母。在SQL语句中传入汉字返回对应的首字母
在数据库表中没有录入汉字对应的拼音首字母的情况下,进行汉字拼音首字母搜索,下载文本后 直接在mysql中执行,后就可实现根据拼音搜索功能
Mysql 汉字转拼音首字母,使用方式: 运行后生成一个表 一个函数 ,SELECT getPY("龍的传人");查询结果为LDCR。 不支持多音字。
这种脚本的目的是方便在MySQL数据库中存储和查询汉字的拼音首字母,这对于处理中文信息,如搜索优化、拼音转换等场景非常有用。 GBK编码是一种双字节编码系统,每个汉字由两个字节表示。在GBK字典中,每个汉字都有...
标题“数据库获取中文首字母自定义函数(字母查汉字模糊查询)”指的是在数据库系统中定义一个函数,该函数能接受用户输入的英文首字母,然后返回所有以该首字母为拼音首字母的中文字段。这种功能对于具有大量中文...
代码如下: select areaName from area order by convert(areaName USING gbk) COLLATE gbk_... 您可能感兴趣的文章:mysql的中文数据按拼音排序的2个方法mysql如何按照中文排序解决方案MySQL按照汉字的拼音排序简单实例
MySQL中文拼音数据库是一种专门用于处理中文字符到其拼音转化的数据资源,它包含了6565个汉字的全拼和首字母信息。这个数据库是用MySQL这种关系型数据库管理系统构建的,设计时考虑到了高效检索和数据存储的需求。...
在这个查询中,`pinyin(name)`会先计算出名字的拼音表示,然后`SUBSTRING_INDEX`函数取出第一个字母,从而实现按拼音首字母查找。 值得注意的是,这些函数依赖于GBK编码,如果数据存储使用的是其他编码(如UTF-8)...
#获取字符的编码范围的位置,为了确认汉字拼音首字母是那一个 SET tmp_loc=INTERVAL(CONV(HEX(tmp_char),16,10),0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,0xBFA6,0xC0AC ,0xC2E8,0xC4C3,0xC...
为了能够提取汉字的首字母,我们首先需要创建一个映射表,该表存储了常用汉字与其拼音首字母之间的对应关系。创建表的SQL语句如下: ```sql CREATE TABLE `cs_char2letter` ( `PY` char(1) CHARACTER SET utf8 NOT...
标题中的"查询汉字首字母及全拼sql自定义方法"指的是创建自定义的SQL函数,用于获取汉字的首字母(通常是声母)以及其完整的拼音。这种方法对于没有内置拼音支持的数据库系统特别有用,例如MySQL、SQL Server或...
MySQL中文拼音数据库(6565字,全拼+首字母(大小写均有)) 里面的文件内容大体是这个样子的。(压缩包中包含sql文件,可以直接导入) INSERT INTO `hs_pinyin` VALUES (3, '在', 'zai', 'z', 'Z'); INSERT INTO `...
1. **创建拼音查找表**:首先,你需要一个包含所有汉字及其拼音首字母的表,通常这个表会包含两列,一列是汉字,一列是对应的拼音首字母。这样的表可以通过第三方工具生成或者手动创建。 2. **联接查询**:在查询时...
常用汉字
GBK编码下,查询汉字的汉语拼音的首字母的MySQL数据库脚本,直接导入数据库,一共存在3个字段,其中zi与jian_pin是主要的。请使用GBK
在中文环境下,由于汉字与拼音的对应关系,我们可以通过转换汉字为拼音来实现模糊匹配。C#中可以借助第三方库,如`Pinyin4net`,来完成这个任务。`Pinyin4net`库提供了一个方便的方法,将汉字转换为拼音,包括全拼和...
它的实现基于GBK编码,因为GBK编码中,汉字的编码值与其拼音首字母有一定的对应关系。函数通过计算GBK编码的十进制值,并将其与预定义的GBK码段区间进行比较,从而确定对应的首字母。例如,对于字符串"中国人",它会...
通过`HEX()`函数将字符转换为16进制表示,然后用`CONV()`函数将其转换为10进制,再通过`INTERVAL`函数判断这个数字在哪个汉字范围内,从而映射到相应的拼音首字母(A到Z)。 使用`ELT()`函数,根据汉字的10进制编码...
在实现过程中,一些简单的方法可能已经被封装,比如一个`convertToPinyin()`方法用于统一处理汉字到拼音的转换,一个`searchByPinyin()`方法用于根据拼音进行搜索。这些封装使得代码更易读,复用性更高。 此外,...