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

Muh*_*zan 3 sqlite android 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;
}
Run Code Online (Sandbox Code Playgroud)

Logcat显示以下错误.

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

我知道通配符%%和字符串变量项导致问题,但如何使用字符串变量和通配符?

Bar*_*rns 6

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

String mQuery = "SELECT * FROM hadiths WHERE text LIKE '%"+item+"%'";
Run Code Online (Sandbox Code Playgroud)

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

注意:没有必要使用,toString()因为"item"已经是类型String.