SQL-запрос Android с использованием предложения WHERE - PullRequest
1 голос
/ 30 марта 2011

Уважаемое сообщество переполнения стека,

У меня есть вопрос относительно того, как включить предложение WHERE при запросе базы данных sql в Android. Моя цель - вернуть конкретные записи из моей базы данных 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;
}

Мои вопросы таковы: Куда идет мое утверждение "ГДЕ"?

И верно ли мое утверждение "ГДЕ"?

В документации, которую я нашел для db.query, не указано, можно ли использовать предложение "WHERE", она просто указывает, что предложение "HAVING" возможно, но я не совсем думаю, что это то, чего я хочу ,

 db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)   

Ответы [ 3 ]

4 голосов
/ 30 марта 2011

selection представляет ваше предложение WHERE.

Из выбора doc

Фильтр, определяющий, какие строки возвращать, отформатированный как SQL WHEREпункт (исключая ГДЕ сам).Передача null вернет все строки для данной таблицы.

Так что вы можете попробовать это (не проверено):

private static String WHERE = "DATE like ?";
db.query(table, columns, WHERE , new String[] { datePickerDate }, groupBy, having, orderBy)
3 голосов
/ 30 марта 2011

Если вы хотите использовать предложение WHERE, я бы предложил использовать функцию необработанного запроса в классе SQLiteDatabase, показанную здесь .

Таким образом, вы можете набрать необработанный запросвыход (или в сегментах), как если бы вы делали это естественным образом с помощью SQL.

РЕДАКТИРОВАТЬ: В примечании, параметр «selection» функции query () соответствует WHEREпункт, как отмечено здесь

0 голосов
/ 30 марта 2011

О том, куда вы идете "ГДЕ" - смотрите здесь

А что касается второй части, я думаю, что вы пропустите qouts до и после значения, оно должно быть .. like '3/29/2011', а не .. is like 3/29/2011

...