select * from table
where (field1=条件1 or 条件1='')
and (field2=条件2 or 条件2='')
and (field3=条件3 or 条件3='')
and (field4=条件4 or 条件4='')
and (field5=条件5 or 条件5='')
你这样肯定能够实现
strSQL:AnsiString;
strSQL='select * from tableName where 1=1';
if(edit1.text<>'') then
strSQL=strSQL+' and filed1=''+edit1.text+''';
if(edit2.text<>'')
strSQL=strSQL+' and filed2=''+edit2.text+''
..............
..............
增加了一个1=1条件,帮你解决了第一个条件是否带and 的问题
只要有条件你使用strSQL=strSQL+' filedn=''+条件+''';