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

MYSQL 에서 요일별 데이터추출 관련 질문입니다. 채택완료

용미엘 2년 전 조회 2,108

</p>

<p>SELECT CASE DAYOFWEEK(regdate_date)

                    WHEN 1 THEN "일"

                    WHEN 2 THEN "월"

                    WHEN 3 THEN "화"

                    WHEN 4 THEN "수"

                    WHEN 5 THEN "목"

                    WHEN 6 THEN "금"

                    WHEN 7 THEN "토"

                    END AS DateRange,

                    count(seq) AS Total

                    from v_visit

                    where date_format(regdate_date,"%Y%-%m%-%d")

                    GROUP BY DAYOFWEEK(regdate_date)</p>

<p>

 

홈페이지 접속통계를 요일별로 나누기 위해서 MYSQL 에서 위 코드로 요일별 추출해서  GROUP BY로 묶어서 사용하려고 합니다.

 

다만 위의 코드는 문법에러가 나는데요. 검색해보니 CASE는 스위치문 안에서만 사용되어야된다고 하는데 어떻게 수정해야하나요;?

 

문법에러는 Parse error: syntax error, unexpected 'CASE' (T_CASE) in your code on line 1 입니다.

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

답변 2개

채택된 답변
+20 포인트
플래토
2년 전

올려주신 쿼리를

그누보드의 g5_visit 테이블로 대입해서

 

쿼리의 컬럼만 변경해서 조회해보니 잘됩니다.

</p>

<p>SELECT 

    CASE DAYOFWEEK(vi_date)

      WHEN 1 THEN "일"

      WHEN 2 THEN "월"

      WHEN 3 THEN "화"

      WHEN 4 THEN "수"

      WHEN 5 THEN "목"

      WHEN 6 THEN "금"

      WHEN 7 THEN "토"

      END AS DateRange,

      count(vi_id) AS Total

FROM g5_visit

WHERE date_format(vi_date,"%Y%-%m%-%d")

GROUP BY DAYOFWEEK(vi_date)

 </p>

<p>

수행결과

 

HeidiSql에서 수행해본것이구요

혹시라도 오류가 나오면

" 따옴표를 

' 단일따옴표

로 변경해보세요

 

</p>

<p>SELECT 

    CASE DAYOFWEEK(vi_date)

      WHEN 1 THEN '일'

      WHEN 2 THEN '월'

      WHEN 3 THEN '화'

      WHEN 4 THEN '수'

      WHEN 5 THEN '목'

      WHEN 6 THEN '금'

      WHEN 7 THEN '토'

      END AS DateRange,

      count(vi_id) AS Total

FROM g5_visit

WHERE date_format(vi_date,"%Y%-%m%-%d")

GROUP BY DAYOFWEEK(vi_date)</p>

<p>

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

답변에 대한 댓글 2개

용미엘
2년 전
답변 감사드립니다.
저도 DB에서 직접 질의하면 값은 잘 뽑아져나오는데 php페이지 안에 넣어 사용하고자 하니 오류가나네요 ㅎ;
혹시 php버전문제일수도 있을까요? 현재버전은 7.2.16버전입니다.
플래토
2년 전
하단의 date_format에서 오류가 나네요
다음과같이 하니까 정상적으로 잘 조회됩니다.

[code]

$sql = "SELECT
CASE DAYOFWEEK(vi_date)
WHEN 1 THEN '일'
WHEN 2 THEN '월'
WHEN 3 THEN '화'
WHEN 4 THEN '수'
WHEN 5 THEN '목'
WHEN 6 THEN '금'
WHEN 7 THEN '토'
END AS DateRange,
count(vi_id) AS Total
FROM g5_visit
WHERE date_format(vi_date,'%Y%-%m%-%d')
GROUP BY DAYOFWEEK(vi_date)
";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
echo $row['DateRange']." | ".$row['Total']."<BR>";
}
[/code]

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

핑크빈
2년 전

SELECT CASE DAYOFWEEK(regdate_date) WHEN 1 THEN "일" WHEN 2 THEN "월" WHEN 3 THEN "화" WHEN 4 THEN "수" WHEN 5 THEN "목" WHEN 6 THEN "금" WHEN 7 THEN "토" END AS DateRange, COUNT(seq) AS Total FROM v_visit  GROUP BY DAYOFWEEK(regdate_date)

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

답변에 대한 댓글 3개

용미엘
2년 전
답변감사합니다.
알려주신 코드도 동일하게 오류가 나네요 ㅎ; 제가 위에 올려둔 코드로 PMA 에서 직접 SQL 구문 넣으면 값은 잘 추출되는데 sql구문으로 넣으면 오류가나네요;
핑크빈
2년 전
에러내용이 무엇인가요. 따옴표 확인해보세요.
$sql = " SELECT
CASE DAYOFWEEK(regdate_date)
WHEN 1 THEN '일'
WHEN 2 THEN '월'
WHEN 3 THEN '화'
WHEN 4 THEN '수'
WHEN 5 THEN '목'
WHEN 6 THEN '금'
WHEN 7 THEN '토'
END AS DateRange,
COUNT(seq) AS Total
FROM v_visit
WHERE DATE_FORMAT(regdate_date,'%Y-%m-%d')
GROUP BY DAYOFWEEK(regdate_date) ";
용미엘
2년 전
넵 따옴표 문제였습니다.. 이런멍청한.. 답변 감사드립니다!

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

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

로그인