SQL参数中的通配符

发布于 2024-12-03 03:37:59 字数 405 浏览 1 评论 0原文

我需要在我的 SQL Server 数据库中进行类似搜索。但是,我该如何做到这一点,同时仍然使用参数作为我的搜索值?

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

WHERE title LIKE '%foo%bar%'

作为一个例子,但是带有参数。

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

WHERE title LIKE '@SearchParam'

并且 @SearchParam 将被设置为 "%foo%bar%"

我希望这是有道理的?

I need to do a like search, in my SQL Server database. BUT, how do I do this, while still using parameters for my search value?

I am not talking about encapsulating in %'s. I need to be able to add a % in the middle of the search word.

WHERE title LIKE '%foo%bar%'

as an example, but with params.

Edit:
To elaborate on the params:
I am using MS SQL 2008, and C#, so it would be:

WHERE title LIKE '@SearchParam'

and @SearchParam would then be set to "%foo%bar%".

I hope that makes sense?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暗恋未遂 2024-12-10 03:37:59

这工作正常

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 注入的,它们只是通配符搜索的一部分

This works fine

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

And things like '1=1 -- drop table' are not SQL injected, they are just part of the wildcard search

瘫痪情歌 2024-12-10 03:37:59

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

如何转义通配符在 SQL Server 中搜索时的字符

您是否在寻找类似下面的内容?

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

This should work fine if you are using Stored Procedures. Here is a similar thread.

How to Escape Wildcard Characters While Searching in SQL Server

Are you looking for something like below?

where title like '%foo[%]bar%'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文