2012-07-24 3 views
0

각 레코드 (예 : A, B, C)에 대해 세 가지 구성 요소가 포함 된 테이블이 Sqlite에 있고 기본 키 (id)가 임의입니다. 당신이 데이터베이스에 루프를 적용하는 것처럼 순차적으로 각 레코드를 추출하는 SQL 쿼리를 싶습니다.Sqlite의 테이블에서 레코드를 순차적으로 추출하는 방법은 무엇입니까?

나는 LIMIT과 같은 조항이 있지만 첫 번째 요소 (LIMIT 1) 대신 두 요소 (LIMIT 2) 만 반환한다는 것을 알고 있지만 레코드를 추출하여 처리하고 다른 요소로 이동하려고합니다. . id가 무작위임을 상기하십시오.

+0

나는 MySQL 또는 SQLite로 작업하고 있습니까? 나는 안드로이드 태그를 기반으로 SQLite를 가정합니다. 분명히 분명히해야합니다. 또한 SQL이 어떻게 작동하는지 완전히 이해하지 못하는 것처럼 보입니다. 모든 레코드를 원하면 LIMIT 문을 사용하지 않아야합니다. –

+0

저는 Java 사용자가 아니지만 일반적으로 SQL 데이터베이스를 사용하여 쿼리를 실행 한 다음 한 번에 하나씩 행을 반복 할 수 있습니다. 레코드를 _ 추출하여 처리하고 다른 레코드로 이동하려는 경우 메모리 소비가 걱정되는 것처럼 들리므로 - 루프 당 하나의 레코드 당 많은 양의 데이터를 저장하지 않는 한 괜찮습니다. . – halfer

+0

아직 알지 못했을 수도 있으므로 [OFFSET] (http://stackoverflow.com/q/3325515/472495)를 사용할 수 있습니다. – halfer

답변

0

안전한 쿼리를 생성하는 방법이 제공되었으므로 수동으로 쿼리를 작성하는 것은 이상적이지 않습니다.

database.query(DATABASE_TABLE, new String[] {ROW_ID, ROW_COLUMN_ONE, ROW_COLUMN_TWO, ... }, null, null, null, null, new String[] {ROW_ID}); 

이렇게하면 ROW_ID 열에 의해 정렬 된 데이터베이스의 모든 행이 반환됩니다.

이 사이트는 SQLite 구현의 일반적인 사용 사례를 다루기 때문에 더 많은 용도가있을 수 있습니다. http://www.vogella.com/articles/AndroidSQLite/article.html

0

어떤 종류의 처리입니까?

어떤 방식 으로든 데이터를 업데이트하거나 변경하려면 SQL 내에서 수행 할 수 있지만 "UPDATE table SET value_column = value WHERE key_column = key" .

그런 경우 레코드를 추출하여 java에서 반복해야합니다. android.database. *를 살펴보십시오.

+0

안녕하세요, 처리해야하는 사진이 포함 된 레코드를 꺼내 다른 것으로 이동해야합니다. ID가 무작위이고 순차적이지 않은 경우에만 쿼리를 작성하는 방법을 알지 못합니다. – user1547027

+0

SELECT * FROM table_name ORDER BY ID; –

+0

또한 https://www.sqlite.org/lang.html/ –

관련 문제