이전 목록 다음
채택완료

select문 조언부탁드립니다

2016-06-30 (목) 10:53:17 5,393

게시판에 

wr_1 영업시간

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

둘다 숫자로 들어가요

예 ] wr_1 = 1  , wr_23

이런식으로 들어가는데요

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

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

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

고수님들 부탁드려요~

답변 4개 / 댓글 4개

채택된 답변
+20 포인트
2016-06-30 (목) 11:52:44
Copy
SELECT *,  CASE      WHEN wr_1 <= date_format(now(),'%H') AND wr_2 > date_format(now(),'%H') THEN 1         ELSE 2    END AS ordFROM 테이블명ORDER BY ord,wr_2

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

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

2016-06-30 (목) 13:17:09

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

2016-06-30 (목) 12:50:04

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에 그냥 시간만 들어간 거라고 가정하고 쓴 겁니다. 

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

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

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

답변에 대한 댓글 4개

2016-06-30 (목) 11:02:14
list에는 영업시간인것과 영업외시간인거 다 나와야하고 영업외시간이 뒤로 정렬이 되야하는건데 저 조건만으로했는데 영업시간인것만 나와서요.
영업시간인것을 먼저 뽑으시고 union all 해서 영업시간 아닌것을 뽑아서 합치시면 댈듯여
2016-06-30 (목) 11:23:48
union all 뭐예여..
뭐에요... 검색하면 나와여
http://blog.naver.com/whydda/220726166336

또는 mysql union all 검색하세여

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