带变量的模糊查询(100分)

  • 主题发起人 主题发起人 beyboy
  • 开始时间 开始时间
B

beyboy

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟初来贵地,正做一供销存系统。MSSQLSERVER作为后台数据库,急需带变量的模糊查询,请给出具体步骤,例子.100分起价。
 
用like语句,如select * from table1 where field1 like '%aa',
这表示末位两个字母为aa的所有情况.
 
query1.sql.clear;
query1.sql.add('select * from yourtable');
query1.sql.add('where name like ''%'+yourvar+'%''');
query1.open;
————————————————————
%yourvar 为左模糊
yourvar% 为右模糊
%yourvar% 为左右都模糊
 
我也试过此法,但不是很好用,不知还有别的好的方法没有。
 
用SQL 的LIKE是最方便的了。
我以前做模糊查询都是这样的。
嫌拼凑一个SQL语句麻烦的话,
可以用参数的方法。
 
with Query do
begin
Close;
Sql.Celar;
Sql.Add('SELECT * FROM TABLE');
Sql.Add('WHERE FIELD1 LIKE :V1');
Sql.Add('AND FIELD2 LIKE :V2');
ParamByName('V1').AsString := '%'+'fsadfsa'+'%';
ParamByName('V2').AsString := '%'+'fksajflfasjflasj'+'%';
Open;
end;
 
模糊查询一般是用like,
但有的数据库中用的是likea
 
SQL 可支持
LIKE:
[]
_
%
几种模糊查询呢:

SELECT * FROM COUNTRYS WHERE NAME LIKE '_国'
-----
RESULT:
中国
美国
...

SELECT * FROM COUNTRYS WHERE NAME LIKE '[中,英]国'
-----
RESULT:
中国
英国

SELECT * FROM COUNTRYS WHERE NAME LIKE '%国%'
-----
RESULT:
中国
中国人民共和国
英国
美国
...

 
多人接受答案了。
 
后退
顶部