1
WHERE g.value like '" + lookingFor + "%'

SQLite データベースからカーソルをフィルター処理する EditText があります。「g」テーブルから「値」を取得したい。たとえば、「値」の 1 つは「ピリオド」です。「停止」を入力すると、クエリは終止符を見つける必要があります。

lookingFor が「efg」の場合、何も見つかりません。「efg」と入力したときに「abcd efgh」を見つける方法は?

PS。「cd」と入力したときに「abcd edfh」を取得したくない

4

4 に答える 4

3

使ってみて
WHERE g.value like '%" + lookingFor + "'

于 2013-08-13T09:42:55.493 に答える
1

SQL の lookingFor の前の % は、lookingFor の前に他のデータがある可能性があることを表します。lookingFor の後の % は、lookingFor の後に他のデータがある可能性があることを表します。

したがって、「abcd efgh」のようなデータがあるときに「efg」を見つけたい場合は、次のようにする必要があります。

....WHERE g.value LIKE '%" + lookingFor + "%' ";

残念ながら、「cd」と入力すると「abcd ..」が表示されます。これを修正するには、実際に sql コマンドを実行する前に lookingFor の値を確認します。

if(lookingFor.equals("efg")
{
    ....WHERE g.value LIKE '%" + lookingFor + "%' ";
}
else
{
     //Do whatever you want here if the value is not "efg".
}

幸運を

于 2013-08-13T09:50:05.450 に答える
0

これを試してください:

Cursor oCursor = myDatabasequery(true, DATABASE_TABLE, new String[]{column1, column2,column3},  column2+ " LIKE '%" + lookingFor + "%'", null, null, null, null, null);

あなたのコードで:

... WHERE g.value LIKE '%" + lookingFor + "%' "

その前後の文字列を検索します

于 2013-08-13T09:41:50.473 に答える
0

クエリの前:

String strSpace=" ";

内部クエリ:

 "...   WHERE g.value like '"+ lookingFor + "%' OR g.value like '%"+strSpace + lookingFor + "%'   ..."
于 2013-08-13T10:02:44.550 に答える