亲爱的Stack Overflow社区,
我有一个关于如何在Android中查询sql数据库时合并WHERE子句的问题。我的目标是从我的数据库where the date picked by a datepicker matches the date stored
返回特定记录。
这是我的代码:
private static String datePickerDate = "3/29/2011";
private static String[] FROM = { _ID, NAME, PRICE, DATE, TIME };
private static String ORDER_BY = TIME + " DESC ";
private static String WHERE = DATE + "is like " + datePickerDate;
private Cursor getEvents(){
// Perform a managed Query. The Activity will handle closing
// and re-querying the cursor when needed
SQLiteDatabase db = events.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, FROM, null, null, null, null, ORDER_BY);
startManagingCursor(cursor);
return cursor;
}
我的问题是: 我的“WHERE”声明在哪里?
我的“WHERE”陈述是否正确?
我为db.query找到的文档没有指定是否可以使用“WHERE”子句,它只是指定可以使用“HAVING”子句,但我不认为这就是我想要的。
db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)
答案 0 :(得分:4)
selection
表示您的WHERE子句。
来自doc
选择过滤器声明哪个 要返回的行,格式化为SQL WHERE子句(不包括WHERE 本身)。传递null将返回所有 给定表的行。
所以你可以尝试这个(未经测试):
private static String WHERE = "DATE like ?";
db.query(table, columns, WHERE , new String[] { datePickerDate }, groupBy, having, orderBy)
答案 1 :(得分:3)
如果你想使用WHERE子句,我建议在SQLiteDatabase类中使用原始查询函数,显示为here。
通过这种方式,您可以将原始查询输出(或分段),就像使用SQL自然地进行操作一样。
编辑:在旁注中,query()函数的“selection”参数对应于WHERE子句,如上所述here
答案 2 :(得分:0)
关于你“何处”去哪里 - 看here
关于第二部分,我认为你错过了值之前和之后的qouts,它应该是.. like '3/29/2011'
而不是.. is like 3/29/2011