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 будет обрабатывать цитирование строки, экранирование любых встроенных кавычек и т. д.