mysql 문 질문

mysql 문 질문

QA

mysql 문 질문

본문

금요일 기준으로 1주일간 조회수가 높은 글을 뽑을려고 하는데요~

mysql where 절로 어떻게 표현해야할까요?

 

 

ex)

오늘 기준(금요일)으로 

지난주 토요일~이번주 금요일까지 제품 중에 

조회수가 높은 글을 조회하고 싶습니다.

 

이 질문에 댓글 쓰기 :

답변 2

쿼리만 해보면

범위) 저저번주 토요일 ~ 저번주 금요일까지 


SELECT 
  wr_id,wr_subject,wr_datetime,wr_hit
FROM g5_write_free 
WHERE  wr_is_comment = '0' 
  and DATE_FORMAT(wr_datetime,'%Y-%m-%d') BETWEEN '2021-02-20' AND '2021-02-26'
ORDER BY wr_hit DESC
LIMIT 1;

 

쿼리로 between 날짜 계산


SELECT 
  wr_id,wr_subject,wr_datetime,wr_hit
FROM g5_write_free 
WHERE  wr_is_comment = '0' 
  and DATE_FORMAT(wr_datetime,'%Y-%m-%d') 
    BETWEEN 
      (SELECT * FROM (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL (WEEKDAY(NOW()) + 9) DAY), '%Y-%m-%d')) as startDate) 
    AND 
      (SELECT * FROM (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL (WEEKDAY(NOW()) + 3) DAY), '%Y-%m-%d')) as endDate)
ORDER BY wr_hit DESC
LIMIT 1;

 

아... 오늘을 기준으로 일주일전 데이터면


SELECT 
  wr_id,wr_subject,wr_datetime,wr_hit
FROM g5_write_free 
WHERE  wr_is_comment = '0' 
  and DATE_FORMAT(wr_datetime,'%Y-%m-%d') BETWEEN DATE_ADD(CURDATE(),INTERVAL -6 DAY) AND CURDATE()
ORDER BY wr_hit DESC
LIMIT 1;

오늘 3/8  endDate 를 쿼리해보면
SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL (WEEKDAY(NOW()) + 3) DAY), '%Y-%m-%d') as endDate
2021-03-05 (금요일) 이 나오잖아요?
금요일이 기준일이므로
3월 12날 쿼리해도
기준일이 아직 지나지 않았기 때문에
쿼리에서 제외하고 3월 5일(금)이 나오는게 맞을 거 같고요

생각하시는대로 한다면
오늘 쿼리: 3월 6일 ~ 3월 12일이 되는 거기 때문에
또 이상해질 것입니다

위의 쿼리에서 + 3 숫자를 변경하면서
원하시는 값을 도출해보세요

select 하시려는 게

상품인지 게시물인지 모르겠지만, 게시물이라고 하면


$lastFriday= date( 'Y-m-d',   strtotime( 'last Friday'));
$res= sql_query( "select ... from bbs where wr_datetime >= '$lastFriday' "); order by wr_hit DESC limit N ");

자세한 정보가 없어서 이 정도네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 34
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT