如何从我的输入搜索开始的sqlite句子中找到单词?

时间:2019-03-17 13:41:52

标签: android sqlite

我正在用editext输入在sqlite数据库中搜索。在sqlite中,我有一句话。我想从sqlite中找到句子,其中包含一些以我的输入文本开头的单词。例如,如果我的输入文本为:“伤害”,我想查找包含“伤害”之类的词的句子。输入搜索为“有效”时,我不想找到“有害”字词。因为这个词不是我词的开头(有害)。希望能达到我的目的。这是我的示例代码:

String pattern = "'%" + inputSearch.getText().toString() + "%'";

                    final String sql = "SELECT * FROM " + TABLE + " WHERE " + TITLE  + " LIKE " + pattern;                      

                    final SQLiteDatabase mydb = new MyDatabase(ArdicActivity.this).getWritableDatabase();
            //      final Cursor c = mydb.rawQuery(sql, null);

我想在句子之间找到单词。例如,我想从句子中找到“有害”一词:“这种食物对您有害”

2 个答案:

答案 0 :(得分:0)

只需删除初始通配符:

String pattern = "'" + inputSearch.getText().toString() + "%'";

Reference - SQLite LIKE condition

此外,我建议您使用SQLiteOpenHelper类中提供的方法,而不要使用串联的字符串进行查询。参见this answer

答案 1 :(得分:0)

如果在模式中添加一个前导空格是否行得通?

 String pattern = "'% " + inputSearch.getText().toString() + "%'";

请注意第一个百分号后的空格。这将找到输入在句子中间的句子。然后您可以添加其他条件,其中模式是

String pattern = inputSearch.getText().toString() + "%'";

查找以输入开头的句子。