Как выполнить 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; 

Это вернет вам необходимый курсор

 Cursor cursor = db.query(TABLE_NAME, new String[] {"_id", "title", "title_raw"}, "title_raw like " + "'%Smith%'", null, null, null, null); 

Кроме того, существует db.rawQuery (sql, selectionArgs).

 Cursor c = db.rawQuery(select, 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 } в 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 : данные строки, которые вы хотите вернуть из столбцов (это предложение WHERE).
  • selectionArgs : Это заменяет ? В строке selection выше.
  • groupBy и having : Эти группы дублируют данные в столбце с данными, имеющими определенные условия. Любые ненужные параметры могут быть установлены в нуль.
  • orderBy : сортировать данные
  • limit : ограничить количество возвращаемых результатов

Попробуйте это, это работает для моего кодового имени: String:

 cursor = rdb.query(true, TABLE_PROFILE, new String[] { ID, REMOTEID, FIRSTNAME, LASTNAME, EMAIL, GENDER, AGE, DOB, ROLEID, NATIONALID, URL, IMAGEURL }, LASTNAME + " like ?", new String[]{ name+"%" }, null, null, null, null);