Подтвердить что ты не робот

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

4b9b3361

Ответ 1

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

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

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