0
쿼리에서 반환 한 MySQL 테이블 이름 중에서 선택하려고합니다. 테이블 이름은 table_prefix_date (예 : table_prefix_20160801)입니다.쿼리에서 반환 한 테이블에서 MySQL을 선택하십시오.
select concat('db_name.table_prefix_',a.Date)
from (
select date_format(curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY,'%Y%m%d') as Date
from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
) a
where date_format(Date,'%Y-%m-%d') between '2016-08-01' and '2016-08-20'
order by 1 asc;
모든 테이블이 같은 열 및 인덱스가 :
내가 같은 것을 할 모든 날짜 및 해당 테이블 이름 얻으려면. 그냥select * from (queryabove);
일을 실패합니다.
누군가 나에게 위의 쿼리에서 반환 된 테이블에서 데이터를 검색하는 방법에 대한 몇 가지 실제 예를 들려 줄 수 있습니까?
이 예제에서 사용 된 따옴표로 실행할 수 없습니다. 전체 쿼리 주위에 큰 따옴표로 변경하면 실행되지만 여전히 "select * from tablenames"를 반환합니다. http://sqlfiddle.com/#!9/4523b4/5 –
@AndyThompson을 참조하십시오. . . 나는 내가 무엇을 생각하고 있었는지 모른다 (비록 시차로 인한 피로를 원인으로 주장 할 수있다). 'set'은 실제로 문자열이 아닌 서브 쿼리를 사용해야합니다. –
나는 단지 오류가 발생하고 괄호가 누락되고 틱/따옴표 문제가있는 것처럼 보입니까? –