Quiero usar la consulta de selección para recuperar datos de la tabla. He encontrado, rawQuery(query, selectionArgs)método de SQLiteDatabaseclase para recuperar datos. Pero no sé cómo el queryy selectionArgsdeberán ser pasados al rawQuerymétodo?
87

Respuestas:
rawQuery("SELECT id, name FROM people WHERE name = ? AND id = ?", new String[] {"David", "2"});Pasa una matriz de cadenas con un número igual de elementos que "?"
fuente
rawQuery("SELECT id, name FROM people WHERE ?= ?", new String[] {"column_name", "David"});, ¿es esta una consulta válida?Tal vez esto pueda ayudarle
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(); }fuente
Un ejemplo de rawQuery -
db.rawQuery("select * from table where column = ?",new String[]{"data"});fuente
vea el código a continuación que puede ayudarlo.
String q = "SELECT * FROM customer"; Cursor mCursor = mDb.rawQuery(q, null);o
String q = "SELECT * FROM customer WHERE _id = " + customerDbId ; Cursor mCursor = mDb.rawQuery(q, null);fuente
rawQuery. Su propósito es evitar la concatenación de cadenas, etc. Además, se debe aceptar la respuesta de Rawkode.Para una gestión completa y correcta de los recursos:
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(); }fuente
si su consulta SQL es esta
SELECT id,name,roll FROM student WHERE name='Amit' AND roll='7'entonces rawQuery será
String query="SELECT id, name, roll FROM student WHERE name = ? AND roll = ?"; String[] selectionArgs = {"Amit","7"} db.rawQuery(query, selectionArgs);fuente
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(); }El nombre y la familia son tu resultado
fuente