8

私は Android で開発しており、like 演算子と変数を使用して sqlite でクエリを実行する必要があります。

変更しようとしているコードは、このリンクにあるデータベースの実装です。

そのため、テーブルから名前だけを選択するために、リンクで作成されたテーブルに対してクエリを実行しようとしています。私はこのようにやっています:

Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM " +
SAMPLE_TABLE_NAME + " where" +field+ " like %"+search+"%" , null);

ここで、field と search は、上記で次のように定義された 2 つの変数です。

final String field = "LastName";
final String search = "Makam";

出力でアプリを実行すると、クエリで選択した名前と年齢の行が表示されるはずですが、何も得られません!!!

ショーLogcat of Eclipse

sqlite returned: error code = 1,msg = near "like": syntax error.

しかし、構文は正しいと確信しています。誰かが私を助けることができますか?

4

4 に答える 4

9

このように使用します:

Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM " +
SAMPLE_TABLE_NAME + " where " +field+ " like '%"+search+"%'" , null);

編集:関数を作成

public Cursor getSearch(String SAMPLE_TABLE_NAME, String field,
            String search) {
        SQLiteDatabase sampleDB = this.getReadableDatabase();
        Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM "
                + SAMPLE_TABLE_NAME + " where " + field + " like '%" + search
                + "%'", null);
        return c;
    }
于 2013-05-02T10:54:00.673 に答える
3

WHEREと の間にスペースがないように見えますfield

于 2013-05-02T10:55:20.663 に答える
3
selection.append(column_name).append(" like ?");
                    selectionArgs = new String[]{"%" + mCategoryName + "%"};
                    db.query(TABLE_URI,null,selection.toString(),selectionArgs,null);
于 2016-11-08T16:10:06.147 に答える
1

これを試して:

final String field = "LastName";
final String search = "Makam";

String query = "SELECT FirstName, Age FROM " +
SAMPLE_TABLE_NAME + " where " +field+ " like '%+search+%'";

Cursor c = sampleDB.rawQuery(query,null);

ではごきげんよう!

于 2013-05-02T10:58:23.523 に答える