('select * from products where name like'+''''+'%'+trim(inputname)+'%'+'''' )
inputname:='red 12'; with Query1 do begin Close; SQL.Clear; SQL.Add('SELECT * FROM PRODUCTS WHERE (Name LIKE '+'"%'+inputname+'%")'); Open; end;
试一试 "select * from product where name like '%"+ inputname+"%'" 注:在VB中有单引号,双引号区别。若在pb中: string inputname_like inputname ='%'+inputname+'%' select * from product where name like :inputname_like using sqlca;
不要使用%,而要使用* 具体语句应为(以VB为例): "SELECT * FROM PRODUCTS WHERE Name LIKE '*" & inputname & "*'"
如果是数据库中,变量为@inputname SELECT * FROM PRODUCTS WHERE Name LIKE "'%"+@inputname+"%'"如果是前段嵌入SQL, inputname='%'+inputname+'%'SELECT * FROM PRODUCTS WHERE Name LIKE :inputname
我在测试的时候发现一个有趣的现象: 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)+"%"
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM PRODUCTS WHERE (Name LIKE '+'"%'+inputname+'%")');
Open;
end;
"select * from product where name like '%"+ inputname+"%'"
注:在VB中有单引号,双引号区别。若在pb中:
string inputname_like
inputname ='%'+inputname+'%' select *
from product
where name like :inputname_like
using sqlca;
具体语句应为(以VB为例):
"SELECT * FROM PRODUCTS WHERE Name LIKE '*" & inputname & "*'"
SELECT * FROM PRODUCTS WHERE Name LIKE "'%"+@inputname+"%'"如果是前段嵌入SQL,
inputname='%'+inputname+'%'SELECT * FROM PRODUCTS WHERE Name LIKE :inputname
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)+"%"