댓글 개수 구하기
1. 댓글을 축력을 위한 정보 조회
1) 같은 그룹번호와 들여쓰기 번호순으로 제목, 그룹번호, 들여쓰기, 글순서 조회하였다
select subject, grpno, indent, ansnum
from tb_bbs
order by grpno desc , indent asc;
2) 그룹번호로 묶어서 그 번호에 속한 글들이 몇개인지 조회한다
select grpno, count(grpno) as cnt
from tb_bbs
group by grpno;
3) 2 )에서 나온 갯수는 부모글+ 자식글 이므로갯수에서 -1 을 한다
select grpno, count(grpno)-1 as cnt
from tb_bbs
group by grpno;
4) 3)의 논리적 테이블에 셀프(이너)조인해서 최초 부모글(indent=0)인 제목 가져오기
select AA.grpno, AA.cnt, tb_bbs.subject , tb_bbs.indent
from(
select grpno, count(grpno)-1 as cnt
from tb_bbs
group by grpno
) AA inner join tb_bbs
on AA.grpno=tb_bbs.grpno
where tb_bbs.indent=0--최초 부모글
order by AA.grpno desc;
5) 생성한 검색창 위에 글 개수를 출력하자
//글개수
int count=dao.count(col,word);
out.println(" <tr>");
out.println(" <td colspan='4' style='text-align:center;'>");
out.println(" 글개수 : <strong>");
out.println(count);
out.println(" </strong>");
out.println(" </td>");
out.println(" </tr>");
▶count 메소드를 잡아서 count 변수에 잡아 검색창으로 검색한 글의 개수가 몇개인지 출력
6) dao.count 메소드 생성
public int count(String col, String word){
int cnt=0;
try{
Connection con=DBOpen.getConnection();
StringBuilder sql=new StringBuilder();
sql.append(" SELECT COUNT(*) as cnt ");
sql.append(" FROM tb_bbs ");
if(word.trim().length()>=1){//검색어가 있다면
String search="";
if(col.equals("wname")){
search+=" WHERE wname LIKE '%"+word+"%' ";
}
if(col.equals("subject")){
search+=" WHERE subject LIKE '%"+word+"%' ";
}
if(col.equals("content")){
search+=" WHERE content LIKE '%"+word+"%' ";
}
if(col.equals("subject_content")){
search+=" WHERE subject LIKE '%"+word+"%' ";
search+=" OR content LIKE '%"+word+"%' ";
}
sql.append(search);
}
PreparedStatement pstmt=con.prepareStatement(sql.toString());
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
cnt=rs.getInt("cnt");
}
}catch(Exception e){System.out.println("글개수 실패"+e);}
return cnt;
}
▶ 목록에 대한 리스트는 list 페이지에서 출력을 했기 때문에<>
▶ 검색어가 있다는 조건문만 걸어서 count(*)로 개수만 조회를 해 주었다