我想在sqlite数据库中搜索,但是有问题。当我在数据库中搜索并在listview中显示结果时,它会显示没有我搜索词的项目。例如,我在标题栏中搜索一个单词。但是列表视图显示标题中的一些没有这个词的项目。但是maany专栏有这个词。列表视图显示标题列中的单词,两个行项目都具有该单词。这是我的代码:
String sql = "SELECT * FROM " + TABLE + " WHERE " + TITLE +" OR "+ MAANY + " LIKE '%" + inputSearch.getText().toString() + "%'";
final SQLiteDatabase mydb = new MyDatabase(ArdicActivity.this).getWritableDatabase();
final Cursor c = mydb.rawQuery(sql, null);
List<String> array = new ArrayList<String>();
while(c.moveToNext()){
String uname = c.getString(c.getColumnIndex("nome"));
String maany = c.getString(c.getColumnIndex("conteudo"));
array.add(uname);
array.add(maany);
}
我希望能达到目的。对不起我的英语。
答案 0 :(得分:1)
您的陈述是错误的。
更改为此:
String pattern = "'%" + inputSearch.getText().toString() + "%'";
String sql = "SELECT * FROM " + TABLE + " WHERE " + TITLE + " LIKE " + pattern +
" OR "+ MAANY + " LIKE " + patern;
我不知道您的代码是如何编译的,但是正确的语法是这样的:
SELECT * FROM tablename WHERE column1 LIKE '%something%' OR column2 LIKE '%something%'