Я хочу написать запрос, который будет искать в базе данных и давать все элементы, в которых слова начинаются с поискового слова. Например, если я ищу слово RULE, оно должно искать в базе данных и находить все слова в предложении, которые содержат RULE.
, но Cursor cursor = qb.query(db,sqlSelect, "Japanese LIKE ?",new String[]
будет искать только один столбец. («Японский» столбец)
, поэтому я пытаюсь преобразовать qb.query в rawQuery, но не работаю вообще.
public List<Dict> getDictByJapanese(String name)
{
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String[] sqlSelect={"Id","Japanese","Yomikata","Thai","English"};
String tableName="Dicts";
qb.setTables(tableName);
Cursor cursor = qb.query(db,sqlSelect, "Japanese LIKE ?",new String[]{"%"+name+"%"},null,null,null);
List<Dict> result = new ArrayList<>();
if(cursor.moveToFirst())
{
do{
Dict dict = new Dict();
dict.setId(cursor.getInt(cursor.getColumnIndex("Id")));
dict.setJapanese(cursor.getString(cursor.getColumnIndex("Japanese")));
dict.setYomikata(cursor.getString(cursor.getColumnIndex("Yomikata")));
dict.setThai(cursor.getString(cursor.getColumnIndex("Thai")));
dict.setEnglish(cursor.getString(cursor.getColumnIndex("English")));
result.add(dict);
}while (cursor.moveToNext());
}
return result;
}
Я попытался изменить код, как показано ниже, но .. .
Cursor cursor = qb.query(db,sqlSelect, "Japanese LIKE ?"+"Yomikata LIKE ?",new String[]{"%"+name+"%"},null,null,null);
Заранее спасибо.