如何用DELPHI做模糊查询?能不能说个具体的例子?(50分)

  • 主题发起人 主题发起人 coolcat3000
  • 开始时间 开始时间
C

coolcat3000

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用DELPHI做模糊查询?能不能说个具体的例子?数据库是用ACCESS的。
 
EASY
请用Adoquery+Sql语句
设表T1
字段是F1,F2,F2
var
s:string;
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(format('select * from t1 where f1 like "%%%s%%" or f2 like "%%%s%%" or f2 like "%%%s%%"',
[s,s,s]))
adoquery1.open;
end;

try it ?Is't Ok?
 
这本身是SQL的问题。
SQL语句中,Select * from Table where Field like 'a%'
Update Table Set Field='b' where Field like 'a%'
Delphi只是负责把数据库和客户端的连接。
 
使用统配符
% 表示0个或多个字符
[]用来指定范围内的单个字符
_ (下划线)用来匹配单个字符
~(跟1在一个键上的字符)用来排除特定字符

1 select * from mytable where name like '韩%'
查询所有姓韩的人
2 select * from mytable where pinyin like '[abc]%'
查询pinyin 字段中第一个字母是 a 或b 或c的人
3 select * from mytable where pinyin like 'h_f'
4 select * from mytable where pinyin like '[~y]%'
注 还可以以语音相近来查询 使用函数 difference()
例 select * from mytable where difference(name 'microsoft'>3)
difference() 按发音比较两个字符串返回值0 1 2 3 4
0 差别很大
4 很接近
 
如果不是SQL直接用
Table1.FindNearest([Edit1.Text]);
 
太好了,谢谢大家
 
后退
顶部