테스트 사이트 - 개발 중인 베타 버전입니다

select문 조언부탁드립니다 채택완료

잘하고시퍼여 9년 전 조회 4,402

 

게시판에 

wr_1 영업시간

wr_2 영업마감시간을 넣었습니다

 

둘다 숫자로 들어가요

예 ] wr_1 = 1  , wr_23

 

이런식으로 들어가는데요

영업시간일때 우선순위로 뽑고싶어요

 

예를들어서 배달의 민족보면 영업시간은 위로 오고 영업시간아닌애들은 아래로 가자나요

 

그런식으로 구현하고싶은데 bbs/list파일에 select를 어떡게 해야지 영업시간이 위로 영업시간외는 아래로 게시물이 내려갈수있는지 어려워요.

 

고수님들 부탁드려요~

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
만두야닷컴

</p><p>SELECT *, 
 CASE 
     WHEN wr_1 <= date_format(now(),'%H') AND wr_2 > date_format(now(),'%H') THEN 1 
        ELSE 2
    END AS ord
FROM 테이블명</p><p>ORDER BY ord,wr_2</p><p>

쿼리문을 위 소스와 같이 처리하시면 됩니다. 

그럼 현재 영업중인 상점부터 정렬되고 영업종료시간이 가까운 순서대로 정렬 됩니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

다들 감사합니다 부러워요..  

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

SELECT *, IF(wr_1 <= HOUR(NOW()) AND wr_2 > HOUR(NOW()), 1, 0) AS is_open FROM 테이블 ORDER BY is_open DESC, wr_1 ASC

 

이렇게 하셔도 됩니다.

wr_1에 1이 들어 있다고 말씀하셔서 wr_1, wr_2에 그냥 시간만 들어간 거라고 가정하고 쓴 겁니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

9년 전

단순할거같은데여 select하고 wr_1와 wr_2사이 것만 찾으면 댈거같네여

wr_1 > 현재시간 and wr_2 < 현재시간

현재시간은 now()나 date("Ymd"); 변수로 넣어서 조건을 주면 대겠죠~ 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

잘하고시퍼여
9년 전
list에는 영업시간인것과 영업외시간인거 다 나와야하고 영업외시간이 뒤로 정렬이 되야하는건데 저 조건만으로했는데 영업시간인것만 나와서요.
톰소여z
9년 전
영업시간인것을 먼저 뽑으시고 union all 해서 영업시간 아닌것을 뽑아서 합치시면 댈듯여
잘하고시퍼여
9년 전
union all 뭐예여..
톰소여z
9년 전
뭐에요... 검색하면 나와여
http://blog.naver.com/whydda/220726166336

또는 mysql union all 검색하세여

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인