[英]Using Wildcards in SQL Where statement
我有以下代码:
SELECT ItemName
FROM skuDetails
WHERE skuDetails.SkuNumber = '" & search & "'
OR
skuDetails.ItemName = '%' + @search + '%'"
基本上我有一个项目数据库,每个项目都有一个“SKU编号”,这是每个项目的唯一编号。 在VB.NET中,我有一个表单,您可以在其中键入SKU编号或项目名称到文本框中,然后按Enter键在数据库中搜索该编号或与您搜索的编号类似的名称。
上面代码中的“搜索”变量是用户搜索的文本框中的文本。
第一个WHERE语句有效,但OR之后没有。 我希望它与我如何使用通配符有关。 这个陈述有什么问题吗?
提前致谢!
要使用通配符,您必须说LIKE '%' + @search + '%'
但是要小心,使用这种代码可以让自己接受SQL注入攻击。
您应该使用LIKE
而不是equals运算符来使用模式匹配:
OR skuDetails.ItemName LIKE '%' ...
LIKE关键字搜索与指定模式匹配的字符串,日期或时间值。 有关更多信息,请参阅数据类型(Transact-SQL)。 LIKE关键字使用正则表达式来包含与值匹配的模式。 该模式包含要搜索的字符串,可以包含四个通配符的任意组合
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.