Comment effectuer une requête SQLite dans une application Android?

J’essaie d’utiliser cette requête sur ma firebase database Android, mais elle ne renvoie aucune donnée. Est-ce que je manque quelque chose?

SQLiteDatabase db = mDbHelper.getReadableDatabase(); Ssortingng 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; 

Cela vous renverra le curseur requirejs

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

Db.rawQuery (sql, selectionArgs) existe également.

 Cursor c = db.rawQuery(select, null); 

Cela fonctionnera également si le motif que vous souhaitez faire correspondre est une variable.

 dbh = new DbHelper(this); SQLiteDatabase db = dbh.getWritableDatabase(); Cursor c = db.query("TableName", new Ssortingng[]{"ColumnName"} , "ColumnName LIKE ?" ,new Ssortingng[]{_data+"%"}, null, null, null); while(c.moveToNext()) { // your calculation goes here } 

Je suis venu ici pour me rappeler comment configurer la requête, mais les exemples existants étaient difficiles à suivre. Voici un exemple avec plus d’explications.

 SQLiteDatabase db = helper.getReadableDatabase(); Ssortingng table = "table2"; Ssortingng[] columns = {"column1", "column3"}; Ssortingng selection = "column3 =?"; Ssortingng[] selectionArgs = {"apple"}; Ssortingng groupBy = null; Ssortingng having = null; Ssortingng orderBy = "column3 DESC"; Ssortingng limit = "10"; Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit); 

Paramètres

  • table : le nom de la table que vous souhaitez interroger
  • columns : les noms de colonnes à renvoyer. Ne renvoyez pas de données dont vous n’avez pas besoin.
  • selection : les données de ligne que vous souhaitez renvoyer à partir des colonnes (il s’agit de la clause WHERE).
  • selectionArgs : Ceci est substitué à la ? dans la chaîne de selection ci-dessus.
  • groupBy et having : Ceci regroupe les données en double dans une colonne avec des données ayant certaines conditions. Tous les parameters inutiles peuvent être définis sur null.
  • orderBy : sortingez les données
  • limit : limite le nombre de résultats à retourner

Essayez ceci, cela fonctionne pour mon nom de code est une chaîne:

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