---------------------------------[오전]---------------------------------
💻 페이징, 검색, 댓글
ㅣ- select ~~ select 중복쿼리 = 서브쿼리 = subQuery
ㅣ- A테이블 sabun필드 B테이블 idx, writer, sabun
연결을 조인 inner join 사용해서 댓글
==> guest316개데이타(email).txt 파일 db복붙해서 입력하기
SQL> 게스트테이블 guest테이블 필드크기조절
set pagersize 1500
set linesize 1500
col name for a10
col title for a10
col email for a12
select rownum as rn, g.* from guest g;
조회 name 필드 a 건
SQL> select rownum as rn, g.* from guest g
where name like '%a%' ; --이름(name)에 a가 들어간 글 찾기
SQL> select count(*) as cnt from guest where name like '%a%' ; --이름(name)에 a가 들어간 글 갯수 찾기
조회 name 필드 b 62건 ==> 7페이지목록
SQL> select rownum as rn, g.* from guest g where name like '%b%' " ;
조회 name 필드 c 48건
SQL> select rownum as rn, g.* from guest g where name like '%c%' ; --이름(name)에 c가 들어간 글 찾기
조회 title 필드 p 13건
SQL> select rownum as rn, g.* from guest g where title like '%p%' ; --title에 p가 들어간 글 찾기
💻 Web0105 에 이어서 작업 ==> 페이징처리, 검색처리, guestList.jsp문서
l-guestList.jsp문서 페이징 및 검색 (bbsList.jsp문서참고)
l-guestDetail.jsp문서 댓글 (bbsDetail.jsp문서참고)
l-guestreplay.jsp문서 댓글 (bbsreplay.jsp문서참고)
---------------------------------[오후]---------------------------------
💻Web0105 오후수업 이어서 · · ·
l-guestList.jsp문서 페이징 및 검색 작업
[이전][11] ~~[16]클릭~~[20][다음]
<a href = guestList.jsp?pageNum=16>[16]
Gtotal
pnum문자형 = request.getParameter("pageNum");
pageNUM = Integer.parseInt(pnum);
start
end
pagecount
tmp=(pageNUM-1)%10 ;
startpage
endpage
if( endpage>pagecount){ endpage=pagecount; }
이전 if(startpage>10){ startpage-10 [이전] }
for(int i=startpage; i<=endpage; i++){ }
다음 if(endpage<pagecount){ startpage+10 [다음] }
[pm3:10~ 검색작업 시작]
skey = request.getParameter("keyfield");
sval = request.getParameter("keyword");
if(skey==null || skey=="" || skey.equals("") || sval=="" || sval==null){
skey="title";
sval="";
}
//select * from guest where title like '%p%' ;
//select * from guest where title like '%%' ; --p검색어를 빼면 에러일까? noRows? 전체출력? ==> 전체출력
sqry=" select * from guest where " + skey + " like '%" + sval + "%' ";
//System.out.println("선택필드: " + skey +" 키워드: " + sval);
System.out.println("sqry= " + sqry );
[문제5] name필드 b포함 글자 조회 62건 행번호 및 필드 출력
62건중에서 21~30행 번호 데이터 출력
rn sabun name title wdate pay hit email
21 8890 hb hb 21/02/01 50 0 bc@tis.com
22 8891 banana bank1 21/02/01 51 0 bc@tis.com
23 8896 bbb6 bank6 21/02/01 56 0 bc@tis.com
24 8897 bbb7 bank7 21/02/01 57 0 bc@tis.com
25 8898 bbb8 bank8 21/02/01 58 0 bc@tis.com
26 9998 blue last8 21/02/01 68 0 bc@tis.com
27 5911 brown1 bb1 21/02/01 51 0 bc@tis.com
28 5977 blue7 bb7 21/02/01 57 0 bc@tis.com
29 5988 black8 bb8 21/02/01 58 0 bc@tis.com
30 5391 banana board1 21/02/01 51 0 bc@tis.com
SQL> select * from guest where name like '%b%' ; 기본
검색구현X, 페이징구현
select * from (
select rownum as rn, sabun, name, title, wdate, pay, hit, email from guest
) where rn between 21 and 30 ;
검색구현, 페이징X
select rownum as rn , sabun,name,title,wdate,pay,hit,email from guest where name like '%b%' ;
-------------------------------=>정답
검색구현 + 페이징구현
a변수 select * from (
b변수 select rownum as rn, sabun, name, title, wdate, pay, hit, email from
y변수 ( select * from guest where name like '%b%' )
c변수 ) where rn between 21 and 30 ;
검색구현 + 페이징구현
a변수 select * from (
b변수 select rownum as rn, sabun, name, title, wdate, pay, hit, email from
y변수 ( select * from guest where skey변수 like '%sval변수%' )
c변수 ) where rn between start변수 and end변수 ;
'Today I Learned' 카테고리의 다른 글
2021.02.08(Mon) 📌 TIL (0) | 2021.02.08 |
---|---|
2021.02.05(Fri) 📌 TIL (0) | 2021.02.08 |
2021.02.04(Thu) 📌 TIL (0) | 2021.02.04 |
2021.02.03(Wed) 📌 TIL (0) | 2021.02.03 |
2021.02.02(Tue) 📌 TIL (0) | 2021.02.02 |