Android アプリケーション内で SQLite クエリを実行するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1243199

  •  12-09-2019
  •  | 
  •  

質問

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
        }

クエリの設定方法を思い出すためにここに来ましたが、既存の例を理解するのは困難でした。詳しい説明付きの例を次に示します。

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:これは、特定の条件を持つデータを含む列内の重複データをグループ化します。不要なパラメータは null に設定できます。
  • 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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top