Получение набора строк из базы данных sqlite - PullRequest
1 голос
/ 24 апреля 2011
SELECT * FROM <TableName> WHERE <attribute(id)> IN <ArrayList type>

но есть ошибка

04-24 21: 18: 41.748: ОШИБКА / ошибка (29495): android.database.sqlite.SQLiteException: нет такой таблицы: 1:,во время компиляции: SELECT * FROM Main WHERE id в [1]

в основном я хочу выбрать те строки с атрибутом (id), которые присутствуют в ArrayList ... но формат ArrayListне то же самое, что и одно требование для этого типа запроса (я полагаю), и я думаю, что это причина, это не работает правильно

, если я запрашиваю его с помощью:

SELECT * FROM <TableName> WHERE <attribute(id)> IN <Integer>

этопоказывает мне правильный результат ... но obv он только выбирает строку этого конкретного идентификатора ...

note: ArrayList заменяется на Integer ... (который является типом данных моего атрибута (id))

Заранее спасибо:)

Ответы [ 2 ]

1 голос
/ 25 апреля 2011

Нет такой вещи как IN <ArrayList type>.

Вам нужно самостоятельно вычислить перечислимую строку, используя код JAVA.

SELECT * FROM <TableName> WHERE _id IN ('1','2','3','4','5')

Также обратите внимание, что в Android первичным ключом рекомендуется быть _id с подчеркиванием.

0 голосов
/ 25 апреля 2011

При работе с приложениями я предпочитаю использовать List, который я использую, чтобы содержать элементы, которые в нем содержатся, например:

List<ElementType> = ...

Делая это, вы можете просто запросить каждый элемент для их идентификаторов.,Решение Pentium10 справится с этой задачей, но я предпочитаю делать это, поскольку оно дает большую гибкость.

...