在sqlite中搜索显示除了我的搜索单词以外的所有项目



我想在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);
                    }

我希望能实现我的目的。用英语不好。

您的语句是错误的。
更改以下:

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%'

最新更新