我正在尝试获取数据,这些数据在开头或中间或结尾都有description关键字。
以下是我的查询
like '%" + description + "' or '" + description + "%' or '%" + description + "%'
问题是它返回了无关的数据。
例如,如果我在描述中给出“as”,那么它也会在结果中选择“蛋糕”。
Description
------------------------------------------------------------
asd
asdasd
cake
Naw
Tast
ad
答案 0 :(得分:2)
你只能写
like '%" + description + "%'
使用此方法,您可以检索所需的数据,因为它将数据开始,字符串在中间,并在不使用或语句的情况下使用该字符串结束。
答案 1 :(得分:1)
刚刚放
LIKE '%" + description + "%'
顺便说一下,如果你有多个“或”语句,你必须重写列名和比较器
mycolumn like '%" + description + "' or
mycolumn like '" + description + "%' or
mycolumn like '%" + description + "%'
但在这种情况下不需要这样做。
你也可以查看准备好的陈述!
答案 2 :(得分:1)
因为你有这个'%" + description + "%'
为什么不直接
SELECT..FROM...WHERE columnName LIKE '%" + description + "%'"
使用SQL Injection
购买您的查询容易受到攻击。改用参数
"
SELECT...
FROM...
WHERE columnName LIKE @description"
然后在查询中定义参数
command.Parameters.AddWithValue("@description", "%" + description + "%")