Sqlite在Android上使用rawQuery选择查询

Ani*_*yik 11 sqlite android

我知道这是一个基本问题,但我找不到问题.我尝试使用rawQuery获取一些列.

    SQLiteDatabase db=database.getReadableDatabase();

    try 
    {
       String sql="SELECT * FROM CAR WHERE name = "; 
       Cursor crs = db.rawQuery(sql+"5P", null);
    }
Run Code Online (Sandbox Code Playgroud)

我总是得到同样的例外.

android.database.sqlite.SQLiteException: **unrecognized token**: "5P": , while compiling: SELECT * FROM CAR WHERE name = 5P
Run Code Online (Sandbox Code Playgroud)

我在CAR桌上有5P,我确定因为我使用了其他查询.

Com*_*are 20

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

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

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