MySQL 또는 Perl 측에서 SQL 결과에 빈 날짜를 채우는 방법과 가장 간단한 방법은 무엇입니까?
P粉448346289
P粉448346289 2023-08-24 13:14:12
0
2
528
<p>다음과 같은 쿼리를 사용하여 mysql 테이블에서 빠른 csv를 작성하고 있습니다. </p> <pre class="brush:php;toolbar:false;">테이블 그룹에서 DATE(날짜), 개수(날짜)를 DATE(날짜)별로 날짜 오름차순으로 정렬합니다.</pre> <p>그런 다음 이를 Perl의 파일에 직접 덤프합니다. </p> <pre class="brush:php;toolbar:false;">while(my($date,$sum) = $sth->fetchrow) { CSV "$date,$sumn" 인쇄 }</pre> <p>그러나 데이터에는 날짜 차이가 있습니다. </p> <pre class="brush:php;toolbar:false;">| 2008-08-05 | 2008-08-07 |23 |</pre> <p>데이터를 채우고 누락된 날짜를 0개 항목으로 채우고 다음과 같은 결과를 얻고 싶습니다. </p> <pre class="brush:php;toolbar:false;">| 2008-08-05 | 2008-08-06 | 2008-08-07 |23 |</pre> <p>월의 날짜 배열과 약간의 수학을 사용하여 매우 서투른(거의 확실히 버그가 있는) 해결 방법을 함께 엮었지만 확실히 mysql이나 Perl을 사용하는 더 직접적인 방법이 있습니다. </p> <p>내가 왜 그렇게 멍청한지에 대한 천재적인 아이디어나 제안이 있나요? </p> <시간 /> <p>결국 저는 여러 가지 이유로 필요한 날짜 범위를 처리하기 위한 임시 테이블을 생성하기 위해 저장 프로시저를 사용하기로 결정했습니다. </p>
    <li>매번 검색할 기간을 알고 있습니다</li> <li>안타깝게도 이 서버는 현재 Perl 모듈을 설치할 수 없으며 Date::-y와 같은 것도 설치되지 않을 정도로 상태가 좋지 않습니다.</li> </ul> <p>Perl 답변의 날짜/시간 반복도 매우 좋습니다. 여러 답변을 선택할 수 있었으면 좋겠습니다! </p>
P粉448346289
P粉448346289

모든 응답(2)
P粉733166744

이 문제를 해결해야 할 때, 누락된 날짜를 채우기 위해 실제로 관심 있는 모든 날짜만 포함하는 참조 테이블을 만들고 날짜 필드에서 데이터 테이블을 결합했습니다. 조잡하고 조잡하지만 작동합니다.

으아악

출력의 경우 CSV를 수동으로 생성하는 대신 SELECT INTO OUTFILE을 사용합니다. 이렇게 하면 특수 문자를 이스케이프하는 것에 대해 걱정할 필요가 없습니다.

P粉593649715

서버 측에서 비슷한 것이 필요한 경우 일반적으로 두 시점 사이의 가능한 모든 날짜를 포함하는 테이블을 만든 다음 이 테이블을 쿼리 결과와 조인합니다. 유사:

으아악

이 특별한 경우에는 클라이언트 측에서 확인하고 현재 날짜가 전날 이후가 아닌 경우 추가 문자열을 추가하는 것이 좋습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿