模糊查询 储存过程

来源:百度知道 编辑:UC知道 时间:2024/06/05 16:10:15
Create Procedure [dbo].[Pro_Article_Search]
(
@keywords char(100),
@auther char(50),
@type tinyint,
@start char(50),
@end char(50)
)
As
SET NOCOUNT ON;
Declare @strSql varchar(2000)
Declare @Key char(100)
Set @strSql='Select * from [Article] Where 1=1 '
set @Key='%'+@keywords+'%'

If @type=1 and @keywords Is Not Null And @keywords<>''
Begin
Set @strSql=@strSql+' And art_title like '''+@Key+''''
End

If @type=0 and @keywords Is Not Null And @keywords<>''
Begin
Set @strSql=@strSql+' And art_content like ''%' +@keywords+ '%'''
End

If @auther Is Not Null And @auther<>'

你好,你这个用模糊查询的时候,已经把%作为查询字符串中的一部分了,而不是真正的模糊查询,
你应该这样用:
... like '%' +@keywords+ '%'
这样就对了.

把@keywords外面的单引号去掉试试,不行的话,把边上2个加号要也去掉,直接"%@keywords%"