마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 sqlite delete

0 추천
마지막(최신) 값을 제외하고 테이블에 있는 데이터들을 삭제하는 쿼리문이 궁금합니다...

현재는 아래와 같은 방법으로 하고 있습니다.

1. 마지막 값을 읽어서 ContentValues에 담는다.

2. 테이블을 삭제한다.

3. 테이블을 생성한다.

4. 새로 생성된 테이블에 ContentValues에 있는 내용을 인서트 한다.

테이블 자체를 삭제해버리는 것과 ContentValues에 담아서 다시 인서트 하는 부분이 너무 비효율 적인거 같아요.
개미1 (1,260 포인트) 님이 2023년 5월 10일 질문

1개의 답변

0 추천

마지막 값을 이미 아시는 마지막 값에 있는 ID만 제외하고 삭제하시면 됩니다.

테이블 이름이 Person이고,Primary key가 int타입의 id라고 하면,

 아래처럼 쿼리를 실행시키시면 됩니다.

"delete from Person where _id < " + id

SQLite는 기본적으로 숫자타입인 ID(아니면 _ID였던 걸로 기억합니다.) 필드가 존재합니다.

아니면, sub query를 이용해서 (제 기억으로는 sub query도 지원되는 걸로 압니다.)

delete from Person where _id < select max(_id) from Person

 

spark (225,780 포인트) 님이 2023년 5월 10일 답변
...