SQLite выберите запрос с rawQuery на Android

Я знаю, это основной вопрос, но я не могу найти проблему. Я пытаюсь получить несколько столбцов с 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

у меня есть 5P в таблице автомобилей, я уверен, потому что я использовал его другие запросы.

1 ответов


вам нужно либо процитировать это значение, либо еще лучше использовать позиционные параметры:

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

преимущество использования позиционных параметров заключается в том, что SQLite будет обрабатывать цитирование строки, экранирование любых встроенных кавычек и т. д.