W
whitehorse
Unregistered / Unconfirmed
GUEST, unregistred user!
设有表table1:学号,姓名,性别,年龄
table2:汉字,拼音码
要求按姓名查找,如输入'赵明',则查询结果要求将姓名为
赵明,昭明明,吴朝名起,赵鸣钢,照明,王罩铭,等所有包含查询字符串同音字的姓名都找出来.
姓名为2-4个汉字.输入查询的条件为2-4个汉字.
我的解决办法:
第一步,找出输入姓名各字的拼音码,然后根据拼音码,找出各字的所有同音字
形成了四个字符串,str1是第一个字的同音字,str2是第二个字的同音字.str3..str4.
第二步,遍历数据库一条记录一条记录的比较,
while not eof do
如果length(当前记录姓名)=2个汉字
1 如姓名的第一个字在str1串中并且姓名的第二个字在str2中 则insert into 结果库
2 如姓名的第一个字在str2串并且姓名的第二个字在str3串中 则insert into
3 如姓名的第一个字在str3串并且姓名的第二个字在str4串中 则insert into
如果 length(当前记录姓名)=3个汉字
1.
2.
如果length(当前记录姓名)=4个汉字
1.
下一条记录 next;
显示结果库
请各位高手提出更简单的办法.
table2:汉字,拼音码
要求按姓名查找,如输入'赵明',则查询结果要求将姓名为
赵明,昭明明,吴朝名起,赵鸣钢,照明,王罩铭,等所有包含查询字符串同音字的姓名都找出来.
姓名为2-4个汉字.输入查询的条件为2-4个汉字.
我的解决办法:
第一步,找出输入姓名各字的拼音码,然后根据拼音码,找出各字的所有同音字
形成了四个字符串,str1是第一个字的同音字,str2是第二个字的同音字.str3..str4.
第二步,遍历数据库一条记录一条记录的比较,
while not eof do
如果length(当前记录姓名)=2个汉字
1 如姓名的第一个字在str1串中并且姓名的第二个字在str2中 则insert into 结果库
2 如姓名的第一个字在str2串并且姓名的第二个字在str3串中 则insert into
3 如姓名的第一个字在str3串并且姓名的第二个字在str4串中 则insert into
如果 length(当前记录姓名)=3个汉字
1.
2.
如果length(当前记录姓名)=4个汉字
1.
下一条记录 next;
显示结果库
请各位高手提出更简单的办法.