模糊查询(50分)

  • 主题发起人 主题发起人 zouguangxing
  • 开始时间 开始时间
Z

zouguangxing

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现键入一个字就可以把关于这个字的所有书全部查出来,请赐教。
 
select * from 表名 where 字段名='%字%'
 
同意楼上的。
 
select * from 表名 where 字段名 like '%字%'
 
select * from 表名 where 关键字段 like '%字%'

关键字段包括书名在内的描述关键字组成的文本

 
select * from 表名 where 字段名='%字%'
%代表任意字符串
 
这种匹配是不是一定能查询成功呀?
 
select * from 表名 where 字段名 like '%key%'
 
用FindNear函数[:)]
 
select * from 表名 where 字段名 like '%keyword%'
 
还有一种方法:对数据集进行过滤。如下:

{数据集 TB1 禁用过滤}
TB1.Filtered := False;

{数据集 TB1 的过滤事件}
procedure TFmMain.TB1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
var StrName:String;
begin
StrName := EdtName.Text;{}
Accept := Pos(StrName,DataSet.Fields[0].AsString)>0;
end;

{调用 TB1 的过滤事件实现模糊查询}
procedure TFmMain.BitBtn1Click(Sender: TObject);
begin
if Trim(EdtName.Text)<>'' then TB1.Filtered:=True;
end;

用这种方式进行模糊查询,同样可以实现复合条件查询,在数据集的过滤事件中设置相应条件。
 
我已经试过,用select * from 表名 where 字段名='%字%'是不行的,
用select * from 表名 where 字段名 like '%字%' 才是正确的。
 
后退
顶部