我正在尝试获取包含特定字符串但查询无效的数据,以下是获取数据的方法。
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%
我知道通配符%%和字符串变量项引起了问题,但如何将字符串变量与通配符一起使用?
答案 0 :(得分:5)
您需要在查询中添加单引号。
String mQuery = "SELECT * FROM hadiths WHERE text LIKE '%"+item+"%'";
看一下SQLite文档: https://www.tutorialspoint.com/sqlite/sqlite_like_clause.htm
注意:无需使用toString()
,因为“item”已经是String
类型。