집 >데이터 베이스 >MySQL 튜토리얼 >임시 테이블이나 변수 없이 MySQL에서 날짜 시리즈를 생성하는 방법은 무엇입니까?
MySQL 보고를 위해 특정 범위 내에서 일련의 날짜를 생성하려는 경우 최적의 접근 방식이 중요합니다. 이는 임시 테이블 생성 및 변수 설정이 금지된 경우에 특히 적합합니다.
효과적인 솔루션 중 하나는 하위 쿼리와 Union 연산을 조합하여 사용하는 것입니다. 다음 쿼리를 고려해 보세요.
select * from (select adddate('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) gen_date from (select 0 t0 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0, (select 0 t1 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1, (select 0 t2 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2, (select 0 t3 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3, (select 0 t4 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v where gen_date between '2017-01-01' and '2017-12-31'
이 쿼리는 여러 하위 쿼리의 결과를 결합하여 '2017-01-01'과 '2017-12-31' 사이의 일련의 날짜를 생성합니다. 하위 쿼리는 0부터 9까지의 숫자 테이블을 생성한 다음 adddate() 함수를 사용하여 날짜를 구성하는 데 사용됩니다. 마지막 where 절은 지정된 범위 내의 날짜만 포함하도록 결과를 필터링합니다.
이 방법을 활용하면 임시 테이블이나 변수 없이 일련의 날짜를 효율적으로 생성할 수 있으므로 다음과 같은 상황에 적합합니다. 권한이 제한되어 있습니다.
위 내용은 임시 테이블이나 변수 없이 MySQL에서 날짜 시리즈를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!