안드로이드 개발 질문/답변
(글 수 45,052)
체크박스각 12개 있습니다.
체크를 할 때 마다 해당 내용을 가지고 쿼리하여 DB에서 정보를 가져옵니다.
또한 체크한 내용들을 or로 하여 해당 내용들을 하나라도 포함하면 쿼리해주도록 하려합니다.
체크박스 하나면 문제가 없는데..
이게 12개이다 보니 생각이 복잡해지네요..
String q_path = "select ser_no _id, * from " + mcApp.search_p +" where ser_no = " + chkbox_1;
암튼 뭐 이렇게 하면 체크한거 한가지는 잘 나오는데,,
만약 12개라하면 각각의 경우의 수대로 쿼리문을 작성해줘서
체크를 2개 헀을 때, 3개 했을 때, 4개 했을 때 .... 12개 했을 때 각각 다르게 쿼리문을 만들어 주어야 하나요?
이러면 너무 비효율적일 것 같은데,, 딱히 다른 방법이 떠오르지 않아서 이렇게 조언 구합니다.^^




선택된 갯수 만큼 포문 돌면서
위 쿼리를 바탕으로.
int size = chkboxList.getSize();
StringBuffer sql = new StringBuffer();
sql.append(where 까지의 쿼리 문);
for(int i=0; i<size; i++){
sql.append("ser_no = "); // 이부분이 싫으시면 sql.append("ser_no = ?"); 로 대처하고 whereArgs추가 하셔도 대고요.
sql.append( chkboxList.get(i) );
if( i == size -1){
sql.append(" or " );
}
}
이렇게 포문으로 만들면 채크된 박스 만 결과를 구할수 있을거에요.
12개 중 연속적이지 않게 1, 4, 6 채크 될 경우가 있을때.
아닐 때는 order by ser_no desc limite 갯수 이렇게나 between a and b를 사용하셔도 대고요.