0

我正在尝试获取 data ,它在开头或中间或结尾处具有 description 关键字。

以下是我的查询

like '%" + description + "' or '" + description + "%' or '%" + description + "%'

问题是它返回不相关的数据。

例如,如果我在描述中给出了“as”,那么它也会在结果中选择“cake”。

Description
------------------------------------------------------------
asd
asdasd
cake
Naw
Tast
ad
4

3 回答 3

2

你只能写

like '%" + description + "%'

有了这个,您可以检索您想要的数据,因为它需要开始的数据,中间的字符串并以该字符串结束,而无需使用 or 语句。

于 2012-11-05T07:35:16.897 回答
1

就放

LIKE '%" + description + "%'

顺便说一句,如果你有多个“或”语句,你必须重写列名和比较器

mycolumn like '%" + description + "' or
mycolumn like '" + description + "%' or 
mycolumn like '%" + description + "%'

但在这种情况下不需要这样做。

您还可以查看准备好的语句!

于 2012-11-05T07:34:43.000 回答
1

既然你有这个'%" + description + "%'

为什么不直接

SELECT..FROM...WHERE columnName LIKE '%" + description + "%'"

购买您的查询很容易受到SQL Injection. 改用参数

"
SELECT...
FROM...
WHERE columnName LIKE @description"

然后在查询中定义参数

command.Parameters.AddWithValue("@description", "%" + description + "%")
于 2012-11-05T07:35:30.387 回答