用SQL语句进行模糊查询的问题,请高手指点(50分)

  • 主题发起人 主题发起人 wolf_zj
  • 开始时间 开始时间
W

wolf_zj

Unregistered / Unconfirmed
GUEST, unregistred user!
当查询的条件不确定时,如何编写进行模糊查询的SQL语句?
另外,已知数据库中有一条记录‘ABCD’,当用select * from db where d
like :Param(其中Param=a)查询时,死活都找不到。不知何故请高手指点。
谢谢。
 

a:='%'+'参数'+'%'
 
with adoquery1 do
begin
with sql do
begin
close;
clear;
text:='select * from db where 字段='''+'%'+值+'%'+'''';
end;
open;
end;
 
方法太多了,
现在有两个问题要解决,一个是你可能忽略了大小写问题,否则:
如果查询的内容可能包括其中任意位置,可以使用 '...WHERE '''+值+''' IN 字段名'
或者'...WHERE 字段名 LIKE ''%'+值+'%'''
如果只是以值开头,'...WHERE 字段名>='''+值+'''' 或 '...WHERE 字段名='''+值+'%'''
其中通配符%(百分号)可匹配任意长度字符,还有_(下划线)可匹配一个字符位
 
with datadelphi.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from mydelphi where content like ''%'+edit1.text+'%''');
open;
end;
试一下,挺好用的!
 
Sql.Text:='select * from db where d like "'+Edit1.Text+'%"';
 
同意jbas的!
 
但对查询日期就不行了,特别是在ACCESS数据库中。
 
TO sxhmc:
具体问题具体分析,老大不要钻牛角尖
ACCESS中日期用前后#号
 
用LIKE 注意参数中冒号的使用
 
后退
顶部