#java #android #sqlite #android-sqlite
#java #Android #sqlite #android-sqlite
Вопрос:
Я нажал первую кнопку. На этот раз отображается ошибка in1
Я поместил =
в запрос некоторую ошибку рядом с «=»: синтаксическая ошибка
Как ее решить?
В этом запросе я использую конструктор строк для объединения нескольких строк
public List<People> getPeople(String category_id) {
List<People> peoples = new ArrayList<>();
try {
SQLiteDatabase db = SQLiteDatabase.openDatabase(DB_PATH DB_NAME, null, SQLiteDatabase.OPEN_READWRITE);
StringBuilder sb = new StringBuilder();
sb.append(",");
Cursor cursor = db.rawQuery("select * from people where category_id in " (category_id sb category_id) , null);
while (cursor.moveToNext()) {
String peopleName = cursor.getString(cursor.getColumnIndex(PEOPLE_NAME));
String peopleImage = cursor.getString(cursor.getColumnIndex(PEOPLE_IMAGE));
People people = new People();
people.setPeopleName(peopleName);
people.setPeopleImage(peopleImage);
peoples.add(people);
}
} catch (Exception e) {
Log.d("DB", e.getMessage());
}
return peoples;
}
Комментарии:
1. для начала вам понадобится пробел после
in
2. оставьте пробел после
in
:in " (category_id
3. оставьте пробел после »
4. Я не вижу цели StringBuilder . Это просто запятая
Ответ №1:
Ваш синтаксис должен быть:
"select * from people where category_id in (" category_id sb category_id ")"
Скобки являются частью предложения IN .
или просто:
"select * from people where category_id in (" category_id ", " category_id ")"
Потому что stringbuilder не является необходимым.