SQL参数中的通配符

时间:2011-09-07 12:21:31

标签: sql parameters wildcard sql-like

我需要在我的SQL Server数据库中进行类似搜索。但是,我如何使用参数作为搜索值?

我不是在谈论封装在%中。我需要能够在搜索词的中间添加%

WHERE title LIKE '%foo%bar%'

作为一个例子,但有params。

编辑: 详细说明参数: 我正在使用MS SQL 2008和C#,所以它将是:

WHERE title LIKE '@SearchParam'
然后将

@SearchParam设置为"%foo%bar%"

我希望这有道理吗?

2 个答案:

答案 0 :(得分:3)

这很好用

create proc dbo.lookupWild(@LIKEclause VARCHAR(20))
as
begin
    select * from teams where Name like @LIKEclause
end
go
exec lookupWild 'E%G%'  

“1 = 1 - drop table”之类的东西不是SQL注入的,它们只是通配符搜索的一部分

答案 1 :(得分:0)

如果您使用的是存储过程,这应该可以正常工作。 Here是一个类似的主题。

How to Escape Wildcard Characters While Searching in SQL Server

你在找下面的东西吗?

where title like '%foo[%]bar%'