使用WHERE子句的Android sql查询

时间:2011-03-29 20:58:09

标签: android sql sql-server datetime where-clause

亲爱的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)   

3 个答案:

答案 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