Как выполнить запрос SQLite в Android-приложение?
Я пытаюсь использовать этот запрос в моей базе данных Android, но он не возвращает никаких данных. Я что-то упустил?
SQLiteDatabase db = mDbHelper.getReadableDatabase();
String select = "Select _id, title, title_raw from search Where(title_raw like " + "'%Smith%'" +
")";
Cursor cursor = db.query(TABLE_NAME, FROM,
select, null, null, null, null);
startManagingCursor(cursor);
return cursor;
5 ответов:
это вернет вам необходимый курсор
Cursor cursor = db.query(TABLE_NAME, new String[] {"_id", "title", "title_raw"}, "title_raw like " + "'%Smith%'", null, null, null, null);
Это также будет работать, если шаблон, который вы хотите, чтобы соответствовать переменная.
dbh = new DbHelper(this); SQLiteDatabase db = dbh.getWritableDatabase(); Cursor c = db.query("TableName", new String[]{"ColumnName"} , "ColumnName LIKE ?" ,new String[]{_data+"%"}, null, null, null); while(c.moveToNext()) { // your calculation goes here }
Я пришел сюда для напоминания о том, как настроить запрос, но существующие примеры были трудно следовать. Вот пример с более подробным объяснением.
SQLiteDatabase db = helper.getReadableDatabase(); String table = "table2"; String[] columns = {"column1", "column3"}; String selection = "column3 =?"; String[] selectionArgs = {"apple"}; String groupBy = null; String having = null; String orderBy = "column3 DESC"; String limit = "10"; Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);
параметры
table
: имя таблицы, которую вы хотите запроситьcolumns
: имена столбцов, которые вы хотите получить. Не возвращайте данные, которые вам не нужны.selection
: данные строки, которые вы хотите вернуть из столбцов (это где пункт.)selectionArgs
: это заменяется на?
наselection
выше строки.groupBy
иhaving
: эта группа дублирует данные в столбце с данными, имеющими определенные условия. Все ненужные параметры могут быть установлены в null.orderBy
: сортировка данныхlimit
: ограничить количество результатов для возврата