我知道这是一个基本问题,但我找不到问题。 我尝试使用rawQuery获取一些列。
SQLiteDatabase db=database.getReadableDatabase();
try
{
String sql="SELECT * FROM CAR WHERE name = ";
Cursor crs = db.rawQuery(sql+"5P", null);
}
我总是得到同样的例外。
android.database.sqlite.SQLiteException: **unrecognized token**: "5P": , while compiling: SELECT * FROM CAR WHERE name = 5P
我在CAR桌上有5P,我确定因为我使用了其他查询。
答案 0 :(得分:20)
您需要引用该值,或者更好的是,使用位置参数:
String[] args={"5P"};
Cursor crs=db.rawQuery("SELECT * FROM CAR WHERE name = ?", args);
使用位置参数的优点是SQLite将处理引用字符串,转义任何嵌入式引号等。