是不是inputdata字符串结尾有一个类似于'\0'之类的结束符??

解决方案 »

  1.   

    ('select * from products where name like'+''''+'%'+trim(inputname)+'%'+'''' )
      

  2.   

      inputname:='red 12';
      with Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('SELECT * FROM PRODUCTS WHERE (Name LIKE '+'"%'+inputname+'%")');
        Open;
      end;
      

  3.   

    试一试
    "select * from product where name like '%"+ inputname+"%'"
    注:在VB中有单引号,双引号区别。若在pb中:
     string  inputname_like 
     inputname ='%'+inputname+'%'  select * 
     from product
     where name like :inputname_like
     using sqlca;
      

  4.   

    不要使用%,而要使用*
    具体语句应为(以VB为例):
    "SELECT * FROM PRODUCTS WHERE Name LIKE '*" & inputname & "*'"
      

  5.   

    如果是数据库中,变量为@inputname
    SELECT * FROM PRODUCTS WHERE Name LIKE "'%"+@inputname+"%'"如果是前段嵌入SQL,
    inputname='%'+inputname+'%'SELECT * FROM PRODUCTS WHERE Name LIKE :inputname
      

  6.   

    我在测试的时候发现一个有趣的现象:
    declare 
       @inputname char(20)set @inputname = "red 12"select * from products where name like "%"+@inputname+"%"结果没有出来,我一开始也不知道为什么。
    后来在这个语句下发现了问题所在:
    print "%"+@inputname+"%"显示结果为:
    %red 12                      %
    原来我定义的@inputname 的长度为20,所以呢自动为我的变量加了空格。
    我想提醒大家注意空格的问题,正确的解答应该为:
    Select * from products where name like "%"+rtrim(@inputname)+"%"