一个表中有7个字段,现要根据7个字段里的任意若干个字段进行查询(就是说查询条件不一定),这样的SQL语句该怎么写?谢谢

解决方案 »

  1.   

    checkbox与edit或者combobox等组合
      

  2.   

    with query1 do begin
    sql.add('select * from xxx where 1=1');
    if edit1.text<>'' then
    sql.add('and id='''+edit1.text+'''');
    if edit2.text<>'' then
    sql.add('and name='''+edit2.text+'''');
    //...以此类推
    close;
    open;
    end;
      

  3.   

    组合SQL,比如:
    select * from 表名 where 1=0 or (ID=值 and 地址='值' and 其他字段...)Email:[email protected]
      

  4.   

    to jinjazz(我是jin) 
    如果用户一个值都不输入就查询的话,是不是会得到整张表的内容呢?
      

  5.   

    一段刚写的代码,还没有调试过,请参考procedure TForm1.Button1Click(Sender: TObject);
    var
      sqlstr:String;
      s:String;        //条件字符串
    begin
      sqlstr:='select * from tablename';  s:='';
      if Edit1.Text<>'' then s:=s+' ID='''+Edit1.Text+''' and';
      if Edit2.Text<>'' then s:=s+' NAME='''+Edit2.Text+''' and';
      if Edit3.Text<>'' then s:=s+' ADDRESS='''+Edit3.Text+''' and';
      {... 其他4个条件类似}  if s<>'' then
      begin
        s:=copy(s,1,length(s)-4);  //去掉最后一个and
        sqlstr:=sqlstr+' where'+s;
      end;
      query1.Close;
      query1.SQL.Clear;
      query1.SQL.Text:=sqlstr;
      query1.Open;
    end;