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

おそらく@authorCHAR代わりに であることと関係がある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 に答える