主题:VF 多字段索引
疏影风流
[专家分:0] 发布于 2010-01-30 01:12:00
现有一个CJ表,以XM+STR(YW,3)做索引,并已经打开,现查询姓名张三,语文成绩为140这条记录,SEEK后表达式该怎么写?查询姓名李四,语文成绩90这条记录,SEEK后表达式怎么写?SEEK "张三"+"140" SEEK "李四"+" 90"查不到,请各位大侠帮助一下初学者。
回复列表 (共2个回复)
沙发
liupeisong [专家分:2340] 发布于 2010-01-30 02:35:00
CREATE TABLE cjk (xm c(8),yw n(3))
INSERT INTO cjk (xm,yw) VALUES ('张三',140)
INSERT INTO cjk (xm,yw) VALUES ('李四',90)
INSERT INTO cjk (xm,yw) VALUES ('大刀王五',999)
INDEX ON ALLTRIM(xm)+ALLTRIM(STR(yw)) TAG xm_yw
SET ORDER TO XM_YW && XM+STR(YW)
SEEK '张三'+'140'
?FOUND()
以上命令测试成功
要点:
1、使用alltrim()函数去掉空格
2、使用SET ORDER TO正确设置当前顺序(或者说索引)
其实记录数很少的话还是使用LOCATE 命令方便点,这个与索引无关,只是缺点是效率低。
建议使用SQL中的SELECT命令来查找记录,我N年都不用SEEK和LOCATE了
板凳
wuzhouhong [专家分:10890] 发布于 2010-01-31 12:42:00
XM+STR(YW,3)
你用的是XM,这个是字段的全长。
SEEK "张三"+"140" 你这个“张三”并不等于全长的字段,找不到是正常的。
我来回复