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

안드로이드sqlite db.delete문 다중조건 삭제 질문 [closed]

0 추천
현재 listview에서 체크된 위치에 따라서 db에서 가져온 내용으로
데이터베이스 내용을 삭제할려고하는데
db.delete("appkeyword","keyword=?",new String[]{
 res.getString(res.getColumnIndex(KeyWord_COLUMN_Keyword))}
문에 두가지조건을 넣고싶은데..db.delete("appkeyword","keyword+appname=?",
new String[]{ res.getString(res.getColumnIndex(KeyWord_COLUMN_Keyword)
)+res.getString(res.getColumnIndex(Keyword_COLUMN_APPNAME))}이렇게
만들고싶은데 혹시 방법이 더있나요? 두가지 내용의 조건으로 삭제하고싶은데
구글을뒤져봐도  다중조건으로 삭제하는 방법은 안나와서 ㅠ AND문이나
 생각해봤는데 도저히 모르겠더라고요 부탁드립니다.ㅜㅜ
질문을 종료한 이유: 댓글 덕분에 잘 해결 되었습니다
류니 (540 포인트) 님이 2021년 11월 4일 질문
류니님이 2021년 11월 5일 closed

1개의 답변

+1 추천
 
채택된 답변

API에서 원하시는 기능을 지원하는 것 같은데요. 아래 링크를 확인해 보세요.

https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#delete(java.lang.String,%20java.lang.String,%20java.lang.String[])

public int delete (String table, 
                String whereClause, 
                String[] whereArgs)

 

API를 보시면 where절에 여러개의 인자를 전달할 수 있습니다.

String andCondition = " AND {필등명} = ?"
String whereClause = keyword+appname= "? "  + andCondition;
String[] whereArgs = //여기에 필요한 값을 배열로 설정
b.delete(
    "appkeyword",
     whereClause, 
     whereArgs
);

// where절을 좀 더 읽기 편하게 만드시려면 String.format를 사용할 수도 있을 것 같음.
String whereClause = String.fromat("%s = ? AND %s = ?", keyword + appname, anotherField)

 

위처럼 필요한 인자들만 맞추어 주시면 될 것 같은데요. 

코드를 보다 보니, keyword + appname 이 필드명인지 좀 헤갈리네요.

 

참고로 SQLite를 사용하시면 안드로이드에서는 Room을 사용하는 것이 표준입니다.

spark (148,650 포인트) 님이 2021년 11월 5일 답변
류니님이 2021년 11월 16일 채택됨
감사합니다 덕분에 잘 해결되었습니다.
...