68

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;
4

5 に答える 5

112

これにより、必要なカーソルが返されます

Cursor cursor = db.query(TABLE_NAME, new String[] {"_id", "title", "title_raw"}, 
                "title_raw like " + "'%Smith%'", null, null, null, null);
于 2009-08-07T07:15:18.070 に答える
57

または、db.rawQuery(sql、selectionArgs)が存在します。

Cursor c = db.rawQuery(select, null);
于 2009-08-10T16:24:36.410 に答える
27

これは、一致させたいパターンが変数である場合にも機能します。

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
}
于 2012-03-21T14:19:45.807 に答える
13

クエリの設定方法を思い出させるためにここに来ましたが、既存の例を理解するのは困難でした。これは、より詳細な説明のある例です。

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:返す結果の数を制限する
于 2016-10-24T04:28:14.840 に答える
1

これを試してください。これは私のコードネームが文字列である場合に機能します。

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);
于 2014-04-14T02:02:42.013 に答える