SQLite 쿼리에서 LIMIT 문 사용
ListView
제한없이 행을 선택하는 쿼리가 있습니다. 하지만 이제 SharedPreferences
사용자가에 표시 될 행의 양을 선택할 수 있도록 구현 ListView
했으므로 SQLite 쿼리가 작동하지 않습니다. 나는 다음과 같이 인수를 전달하고 있습니다.
return wDb.query(TABELANOME, new String[] {IDTIT, TAREFATIT, SUMARIOTIT}, CONCLUIDOTIT + "=1", null, null, null, null, "LIMIT='" + limite + "'");
등호 ( =
) 연산자는 LIMIT
절 과 함께 사용되지 않습니다 . 그것을 제거하십시오.
다음은 LIMIT
쿼리 예입니다 .
SELECT column FROM table ORDER BY somethingelse LIMIT 5, 10
또는:
SELECT column FROM table ORDER BY somethingelse LIMIT 10
귀하의 경우 올바른 진술은 다음과 같습니다.
return wDb.query(TABELANOME, new String[] {IDTIT, TAREFATIT, SUMARIOTIT}, CONCLUIDOTIT + "=1", null, null, null, null, String.valueOf(limite));
여기에서 SQLite 선택 구문을 살펴보십시오. http://www.sqlite.org/syntaxdiagrams.html#select-stmt
이 이미지는 다소 유용합니다. http://www.sqlite.org/images/syntax/select-stmt.gif
이 답변에 걸림돌이되는 사람을 위해 LIMIT
절 을 사용하는 방법을 찾고있는 사람을 위해 Android가 다음 정규식을 사용하여 쿼리의 제한 절을 구문 분석한다는 것을 이 버그OFFSET
에서 발견했습니다 .
에서 <framework/base/core/java/android/database/sqlite/SQLiteQueryBuilder.java>
LIMIT 절은 다음 sLimitPattern으로 확인됩니다.
private static final Pattern sLimitPattern = Pattern.compile("\\s*\\d+\\s*(,\\s*\\d+\\s*)?");
정규식은 문을 직접 offsetNumber,limitNumber
수락하지 않더라도 형식을 수락합니다 OFFSET
.
음수 제한을 허용하지 않는이 버그로 인해
8, -1
이 해결 방법을 사용해야했습니다.
SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
builder.setTables(table);
String query = builder.buildQuery(projection, selection, null, null, null, sortOrder, null);
query+=" LIMIT 8,-1";
참조 URL : https://stackoverflow.com/questions/2497677/using-the-limit-statement-in-a-sqlite-query
'IT Share you' 카테고리의 다른 글
루비를 느리게 만드는 것은 무엇입니까? (0) | 2020.12.15 |
---|---|
HTML 문서에 외부 글꼴을로드하려면 어떻게합니까? (0) | 2020.12.15 |
Django에서 브라우저 유형을 감지하는 방법은 무엇입니까? (0) | 2020.12.15 |
ToLowerInvariant ()의 문제점은 무엇입니까? (0) | 2020.12.15 |
내 Powershell 스크립트 매개 변수에 대한 도움말 메시지가 표시되도록하려면 어떻게합니까? (0) | 2020.12.15 |