如何在SQLite查询中使用通配符?

时间:2018-05-03 14:44:38

标签: android sqlite android-sqlite

我正在尝试获取包含特定字符串但查询无效的数据,以下是获取数据的方法。

public Cursor getSearch(String item) {
    SQLiteDatabase db = this.getReadableDatabase();
    String mQuery = "SELECT * FROM hadiths WHERE text LIKE %"+item.toString()+"%";
    Cursor cursor = db.rawQuery(mQuery, null);
    return cursor;
}

Logcat显示以下错误。

  

引起:android.database.sqlite.SQLiteException:near“%”:语法错误(代码1):,同时编译:SELECT * FROM hadiths WHERE text LIKE%fast%

我知道通配符%%和字符串变量项引起了问题,但如何将字符串变量与通配符一起使用?

1 个答案:

答案 0 :(得分:5)

您需要在查询中添加单引号。

String mQuery = "SELECT * FROM hadiths WHERE text LIKE '%"+item+"%'";

看一下SQLite文档: https://www.tutorialspoint.com/sqlite/sqlite_like_clause.htm

注意:无需使用toString(),因为“item”已经是String类型。