Android 検索ダイアログが正しく機能している 3 列の DB があります。しかし、2 つの異なる列から作品または語句を入力して、検索された語句がいずれかの列、または両方の列にあるすべての結果を返すようにしたいと考えています。私は以下の方法を使用しています:
//--- GET RECORDS FOR SEARCH
public Cursor searchDB(String query) {
return db.query(true, DB_TABLE, new String[] { KEY_ROWID, KEY_COLUMN1, KEY_COLUMN2,
KEY_COLUMN3 }, KEY_COLUMN1 + " LIKE" + "'%" + query + "%' OR " + KEY_COLUMN2 +
" LIKE" + "'%" + query + "%' OR " + KEY_COLUMN3 + " LIKE" + "'%" + query + "%'",
null, null, null, null, null);
}
//--- END Get Records for Search
したがって、次のような DB がある場合、これは正常に機能します。
COL1 COL2 COL3
______________________
Hi there guys
how are you
「こんにちは」で検索すると、「こんにちは、みんな」が返されます。しかし、私がやりたいのは、「こんにちは」で検索し、3 つの列すべての行全体 (「こんにちは、みんな」) を返すことです。追加してみました:
OR "+ KEY_COLUMN2 + KEY_COLUMN3 + " LIKE" + "'%" + query + "%'"
ただし、検索の実行時に検索がクラッシュします。