【发布时间】:2016-07-01 03:55:32
【问题描述】:
我有 ListView 和多个过滤器作为 checkboxList。一切正常,但 Like 子句不正常。如下图
select * from products where category Like '% Apparels, Bluetooth%'
但应该是这样的
select * from products where category Like '% Apparels%' or category Like '%Bluetooth%'
如何更改代码以正确构建查询?
Public Function buildWhereClause() As String
Dim constr As String = ConfigurationManager.ConnectionStrings("conio").ConnectionString
Dim query As String = "select * from products"
Dim joiner As String = " "
Dim condition As String = String.Empty
Dim priceCondition As String = String.Empty
For i = 0 To priceFilter.Items.Count - 1
If priceFilter.Items(i).Selected Then
Dim price As String = priceFilter.Items(i).ToString
priceCondition = String.Concat(priceCondition, joiner, String.Format("'{0}'", price))
If joiner = " " Then joiner = ", "
End If
Next
Dim categoryCondition As String = String.Empty
joiner = " "
For i = 0 To categoryFilter.Items.Count - 1
If categoryFilter.Items(i).Selected Then
Dim category As String = categoryFilter.Items(i).ToString
categoryCondition = String.Concat(categoryCondition, joiner, String.Format("{0}", category))
If joiner = " " Then joiner = ", "
End If
Next
Dim whereClause As String = String.Empty
joiner = " where "
If Not String.IsNullOrEmpty(priceCondition) Then
whereClause = String.Concat(whereClause, joiner, String.Format(" price_range IN ({0})", priceCondition)) ' and sub_category IN ({0})", condition.Substring(0, condition.Length - 1))
joiner = " and "
End If
If Not String.IsNullOrEmpty(categoryCondition) Then
whereClause = String.Concat(whereClause, joiner, String.Format(" category Like '%{0}%'", categoryCondition))
joiner = " and "
End If
'If Not String.IsNullOrEmpty(brandCondition) Then
' whereClause = String.Concat(whereClause, joiner, String.Format(" sub_category in ({0})", categoryCondition))
' joiner = " and "
'End If
Dim masterClause As String = String.Empty
masterClause = (query & whereClause)
End Sub
【问题讨论】:
-
那么,您目前面临的困难是什么?您得到的最终查询是什么?
-
@un-lucky 请在我的帖子开头看到我提到的第一个查询是我的代码得到的。第二个查询是我真正想要的。你能帮我用我的代码建立第二个查询吗?
-
您没有回答我的任何问题,您当前代码面临的困难是什么,您为
query获得的当前价值是多少 -
@un-lucky 这是我得到的输出查询。 select * from products where category Like '% Apparels, Bluetooth%'
-
我已经在下面发布了答案你试过了吗?你可以吗?
标签: mysql asp.net vb.net listview