我正在尝试在asp.net web应用程序中实现搜索,我查询表格并将搜索词与某些列匹配。
为了实现部分搜索,我想,我可以使用Like
子句。所以我写这样的SQL程序 -
CREATE PROCEDURE sproc_SEARCH
@author char(200)
AS
SELECT * FROM Table WHERE column LIKE '%' + @author + '%'
上面的过程应该返回一些行,但它不会
但是,如果我只是运行以下sql语句,它会给我所需的行
SELECT * FROM Table WHERE column LIKE '%bha%'
我不明白为什么会这样,可以使用一些帮助。
由于
答案 0 :(得分:5)
试试这个:
@author varchar(200)
答案 1 :(得分:4)
这可能与@author
代替CHAR
而不是VARCHAR
有关,因此您有尾随空格。使用VARCHAR
:
CREATE PROCEDURE sproc_SEARCH
@author varchar(200)
AS
SELECT * FROM Table WHERE column LIKE '%' + @author + '%'
或修剪参数:
CREATE PROCEDURE sproc_SEARCH
@author char(200)
AS
SELECT * FROM Table WHERE column LIKE '%' + RTRIM(LTRIM(@author)) + '%'