MYSQL 에서 요일별 데이터추출 관련 질문입니다. 채택완료
</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개
올려주신 쿼리를
그누보드의 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개
다음과같이 하니까 정상적으로 잘 조회됩니다.
[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]
댓글을 작성하려면 로그인이 필요합니다.
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개
알려주신 코드도 동일하게 오류가 나네요 ㅎ; 제가 위에 올려둔 코드로 PMA 에서 직접 SQL 구문 넣으면 값은 잘 추출되는데 sql구문으로 넣으면 오류가나네요;
$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) ";
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
저도 DB에서 직접 질의하면 값은 잘 뽑아져나오는데 php페이지 안에 넣어 사용하고자 하니 오류가나네요 ㅎ;
혹시 php버전문제일수도 있을까요? 현재버전은 7.2.16버전입니다.