Sqlite在Android上使用rawQuery选择查询

时间:2013-04-21 22:01:53

标签: android sqlite

我知道这是一个基本问题,但我找不到问题。 我尝试使用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,我确定因为我使用了其他查询。

1 个答案:

答案 0 :(得分:20)

您需要引用该值,或者更好的是,使用位置参数:

String[] args={"5P"};
Cursor crs=db.rawQuery("SELECT * FROM CAR WHERE name = ?", args);

使用位置参数的优点是SQLite将处理引用字符串,转义任何嵌入式引号等。