rawQuery (запрос, selectionArgs)

69

Я хочу использовать запрос выбора для извлечения данных из таблицы. Я нашел метод rawQuery(query, selectionArgs) класса SQLiteDatabase для извлечения данных. Но я не знаю, как query и selectionArgs следует передать методу rawQuery?

  • 0
    Сайт разработчика Android Разработчик Android - лучший источник для всех этих небольших запросов. Лучший источник для всех этих небольших запросов.
Теги:

6 ответов

187
Лучший ответ
rawQuery("SELECT id, name FROM people WHERE name = ? AND id = ?", new String[] {"David", "2"});

Вы передаете массив строк с равным количеством элементов, так как у вас есть??

  • 0
    Thx, заслуживают больше, как для этого
  • 1
    rawQuery("SELECT id, name FROM people WHERE ?= ?", new String[] {"column_name", "David"}); , это validQuery?
Показать ещё 1 комментарий
10

Возможно, это поможет вам

Cursor c = db.rawQuery("query",null);
int id[] = new int[c.getCount()];
int i = 0;
if (c.getCount() > 0) 
{               
    c.moveToFirst();
    do {
        id[i] = c.getInt(c.getColumnIndex("field_name"));
        i++;
    } while (c.moveToNext());
    c.close();
}
  • 0
    это идеальный ответ на вопрос, заданный @AgentKnopf
8

Один пример rawQuery - db.rawQuery("select * from table where column = ?",new String[]{"data"});

  • 0
    Что такое новая строка [] {"data"}? Можете ли вы просто дать объяснение приведенному выше утверждению Заранее спасибо.
1

см. ниже код, который может вам помочь.

String q = "SELECT * FROM customer";
Cursor mCursor = mDb.rawQuery(q, null);

или

String q = "SELECT * FROM customer WHERE _id = " + customerDbId  ;
Cursor mCursor = mDb.rawQuery(q, null);
  • 4
    Почему за это проголосовали? Это не показывает, как правильно использовать функциональность, предоставляемую rawQuery . Его цель - избежать объединения строк и т. Д. Также следует принять ответ Rawkode.
  • 2
    Это не то, как следует использовать rawQuery, вы должны использовать? в качестве заполнителей и второй параметр, чтобы заполнить их.
Показать ещё 3 комментария
0

Для полноты и правильного управления ресурсами:

        ICursor cursor = null;
        try
        {

            cursor = db.RawQuery("SELECT * FROM " + RECORDS_TABLE + " WHERE " + RECORD_ID + "=?", new String[] { id + "" });

            if (cursor.Count > 0)
            {
                cursor.MoveToFirst();
            }
            return GetRecordFromCursor(cursor); // Copy cursor props to custom obj
        }
        finally // IMPORTANT !!! Ensure cursor is not left hanging around ...
        {
            if(cursor != null)
                cursor.Close();
        }
0
String mQuery = "SELECT Name,Family From tblName";
Cursor mCur = db.rawQuery(mQuery, new String[]{});
mCur.moveToFirst();
while ( !mCur.isAfterLast()) {
        String name= mCur.getString(mCur.getColumnIndex("Name"));
        String family= mCur.getString(mCur.getColumnIndex("Family"));
        mCur.moveToNext();
}

Имя и фамилия - ваш результат

Ещё вопросы

Сообщество Overcoder
Наверх
Меню