首页 >数据库 >mysql教程 >SQL中的LIKE语句可以使用参数进行模式匹配吗?

SQL中的LIKE语句可以使用参数进行模式匹配吗?

Susan Sarandon
Susan Sarandon原创
2025-01-05 11:12:40620浏览

Can Parameters Be Used with the LIKE Statement in SQL for Pattern Matching?

如何在 SQL 中使用参数和 LIKE 语句

在 SQL 中,LIKE 语句允许您在字符串中执行模式匹配。然而,如果不采取适当的预防措施,使用它可能会导致 SQL 注入攻击。为了防止此类攻击,可以采用参数化查询。

原始问题

为了限制 SQL 注入漏洞,使用参数构造了以下查询:

SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')

但是,在程序中执行此查询不会产生任何结果。参数可以这样使用吗,还是只适用于以下情况:

SELECT * FROM compliance_corner WHERE body LIKE '%<string>%'

解决方案

参数可以按预期在 LIKE 语句中使用。原始查询中的语法不正确。以下是在此场景中使用参数的正确方法:

Dim cmd As New SqlCommand(
    "SELECT * FROM compliance_corner" _
    + " WHERE (body LIKE @query )" _
    + " OR (title LIKE @query)")

cmd.Parameters.Add("@query", "%" & searchString & "%")

此查询将正确匹配正文或标题字段中包含搜索字符串的字符串。

VB。 NET 注意事项

提供的解决方案对于 VB.NET 在语法上是正确的。但是,实际实现可能会有所不同,具体取决于所使用的特定数据库提供程序和连接方法。请参阅相应的文档以获取进一步的指导。

以上是SQL中的LIKE语句可以使用参数进行模式匹配吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn