在SQLite中搜索会显示除我的搜索词以外的所有内容

时间:2019-03-10 17:24:36

标签: android sqlite search

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

我希望能达到目的。对不起我的英语。

1 个答案:

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