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, я уверен, потому что я использовал другие запросы.
Ответы
Ответ 1
Вам нужно либо указать это значение, либо, еще лучше, использовать позиционные параметры:
String[] args={"5P"};
Cursor crs=db.rawQuery("SELECT * FROM CAR WHERE name = ?", args);
Преимущество использования позиционных параметров заключается в том, что SQLite будет обрабатывать цитирование строки, избегая любых встроенных кавычек и т.д.