我在String
语句中使用selectionArgs
query()
。我想写一个带有5个参数的query
。如果其中一个参数为null,我不想使用它。我该怎么办?
例如:
Cursor cur = sqlite_obj.query(TableName, null, "UID = ? AND Age > ? AND Room = ? AND Adre = ?", new String[] { "31", "" ,"3", ""}, null, null, null, null);
提前致谢。
答案 0 :(得分:0)
如果您坚持使用selectionArgs
,则可以执行以下操作:
首先检查你的参数,然后根据它构建你的查询,例如:
String[] myArray = new String[] { "31", "" ,"3", ""};
List<String> myQueryValue = new ArrayList<String>();
String myQueryParam = "";
if(!myArray[0].equal("")){
myQueryParam = myQueryParam + "UID = ? AND ";
myQueryValue.add(myArray[0]);
}
if(!myArray[1].equal("")){
myQueryParam = myQueryParam + "Age > ? AND ";
myQueryValue.add(myArray[1]);
}
if(!myArray[2].equal("")){
myQueryParam = myQueryParam + "Room = ? AND ";
myQueryValue.add(myArray[2]);
}
if(!myArray[3].equal("")){
myQueryParam = myQueryParam + "AND Adre = ?";
myQueryValue.add(myArray[3]);
}
并在最后
String[] finalValue = new String[ myQueryValue.size() ];
myQueryValue.toArray( finalValue );
Cursor cur = sqlite_obj.query(TableName, null, myQueryParam, finalValue , null, null, null, null);
您还可以使用loop
创建您的值和查询参数。