【问题标题】:Searching in SQLite shows items which have all but my search word在 SQLite 中搜索会显示除我的搜索词之外的所有项目
【发布时间】:2019-03-10 17:24:35
【问题描述】:

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

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

【问题讨论】:

    标签: java android sqlite search android-sqlite


    【解决方案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%'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多