0

我正在尝试在 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%'

我不明白为什么会这样,可以使用一些帮助。

谢谢

4

2 回答 2

5

尝试这个:

@author varchar(200)
于 2013-01-23T14:24:09.157 回答
4

它可能与@author作为 aCHAR而不是有关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)) + '%'
于 2013-01-23T14:24:23.090 回答