后台数据库为SQL,字段的格式为字符型.
要实现在字段中的模糊查询,在线等.

解决方案 »

  1.   

    selecct * from table where field1 like 'v%'
    如果是ADOQUERY就
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('selecct * from table where field1 like ''v%''');
    v代表若干个字符
    ADOQUERY1。OPEN
      

  2.   

    高效Sql语句
    Sql.Add(Format('select * from table where field1 like ''%s''',['%'+value1+'%']));
      

  3.   

    var
    sqlstr:string;
    begin
       sqlstr:='select  *  from  table1 where field1 Like '+ '''%'+format('%s',[v])+'%''';
       ...
       query1.sql.add(sqlstr);
        ...
    end;
      

  4.   

    后台数据库为SQL,字段的格式为字符型.
    要实现在字段中的模糊查询,返回记录,并在网格中显示出来
    在线等.
      

  5.   

    query1.sql.Text := 'Select * from Table Where FieldName like %aa%';
    query1.Open;
      

  6.   

    用like,%作为特殊符号代表任意长度、任意内容的串Select * from Table Where FieldName like '%AA%'
    结果包含fieldName中具有AA的纪录,如:123AA,11AA222,123AAdiididid等
      

  7.   

    是啊,like,配合通配符"_"、"%"等
      

  8.   

    各位大哥大姐:
       多谢你们的帮助了。 我想要的是动态查询,代码如下,
    s1: string;
    s2: string;
    begin
       with form1 do
         begin
           query1.Close;
           query1.sql.Clear ;
           s1 :=edit1.Text ;
           s2 :='select * from class1 where Name like ''%s1%''';///这里的s1能不能动太改变啊
           query1.SQL.Add(s2) ;
           query1.Open;
         end;
    end;
      

  9.   

    既然s1是动态的,那么你的s2写法就错了,你这么写是查出name字段里包含's1'的记录,这里的s1只是一个字符串,不是你定义并赋值的s1.s2 :='select * from class1 where Name like ''%'+s1+'%''';
      

  10.   

    s2 :='select * from class1 where Name like ''%'+s1+'%''';
      

  11.   

    既然s1是动态的,
    s2 :='select * from class1 where Name like %'"'+s1+'"%';