sql.add('select * from m111 where name like 'a%');
取得以'a'开头的记录(不含'a')

解决方案 »

  1.   


    sql.txt:='select * from m111 where name like '%a%';//取得包含'a'的记录
      

  2.   

    用到通配符时,操作符一定是LIKE,就像:
    '%'是指0个或多个任意字符,'%sdf','sdf%','%sdf%','sd%f','%sd%f';
    '?'是指一个任意字符,'?sdf','sd?f','sdf?';
      

  3.   

    sql.add(format('select * from yourtable where name like 's%'',[edit1.text]);
    给分吧:)
      

  4.   

    sql.add('select * from m111 where name like 'a%');
    m111 是什么?数据库名放在哪?然后'a%'如果是EDIT输入的内容将如何写?
      Query1.Sql.Add('select * from  businesscard.db ');
      Query1.Sql.Add('where 公司名称 ='+''''+finddlg.edit1.Text+'''');
      是我原来写的,但只能完全匹配才能查出来,现在应该怎么改?谢谢各位的热心。
      

  5.   

    Delphi作为一个强大的数据库应用开发工具的一个重要标志,就是支持SQL编程。在实际的过程中,经常需要对某些字段进行模糊查询。如对“姓名”字段进行查询,当输入“王”时,能自动地将王姓的所有记录列出来。其实,通过结合SQL和Delphi的特点,就能很容易地完成这个功能。其基本原理是:查询时,将查询的范围控制在姓名大于‘查询字符串+chr(0)’与小于‘查询字符串+chr($ff)’之间,就能将满足条件的所有记录查询出来了。下面是具体的例子:
    Var
    NameStr:String;∥设置字符串中间变量
    Begin
    NameStr:=′王′;
    Query1SQLClear{清除SQL属性中的SQL命令语句}
    Query1SQLAdd(′Select*FromCustomdbwhere(Name1>=N1)and(Name2<=N2)′);∥SQL命令语句
    Query1params[0]AsString:=NameStr+chr(0);∥控制参数在NameStr+Chr(0)
    Query1params[1]AsString:=NameStr+chr($ff);∥和NameStr+Chr($ff)之间
    Query1Open;∥打开数据库,执行SQL查询
    End;
      

  6.   

    这个比较简单!
    with adoquery1 do begin
    close;
    sql.Clear;
    sql.Add('select * from table where 姓名 like:name');
    parameters.parambyname('name').value:='%'+edit1.text;
    open;
    end;

    with adoquery1 do begin
    close;
    sql.Clear;
    sql.Add('select * from mh where 姓名 like:name');
    parameters.parambyname('name').value:=edit1.text+'%';
    open;
    end;

    with adoquery1 do begin
    close;
    sql.Clear;
    sql.Add('select * from mh where 姓名 like:name');
    parameters.parambyname('name').value:='%'+edit1.text+'%';
    open;
    end;
    这是我的站点,本站点的源代码都是非常容易看懂的
    http://developonline.6to23.com
      

  7.   

    现在已经可以了,我刚接触DELPHI,还请大哥大姐们帮忙。