2011-11-21 2 views
1

이 쿼리는 Wordpress 다중 사이트 데이터베이스의 여러 테이블에있는 위젯에서 데이터 목록을 반환합니다.여러 테이블에 대해 Wordpress에서 쿼리를 실행하는 방법

더 쉬운 방법이 있어야합니다. 나는 포함해야하는 30 개의 테이블을 가지고 있는데, 모든 wp_n_option 테이블에서 옵션 값을 리턴하기 위해 어떤 유형의 루프를 얻으려면 어떻게해야합니까?

SELECT option_value 
FROM `wp_options` 
WHERE option_name = 'widget_thin_search' 
UNION 
SELECT option_value 
FROM `wp_3_options` 
WHERE option_name = 'widget_thin_search' 
UNION 
SELECT option_value 
FROM `wp_4_options` 
WHERE option_name = 'widget_thins_search' 
INTO OUTFILE '/tmp/result.csv' 

편집 : Brandon이 지적했듯이, 정적 30 테이블 인 경우 쿼리를 작성할 수 있습니다. 그러나 시간이 지남에 따라 테이블이 증가합니다.

답변

2

테이블 이름이 포함 된 하나의 열로 테이블을 만들 수 있습니다. 그런 다음 해당 테이블 이름을 반복하고 예제에있는 것과 유사한 쿼리 문자열을 생성하는 T-SQL proc를 만듭니다. 그런 다음 exec 명령으로 해당 쿼리 문자열을 실행하십시오.

UNION은 중복을 제거하고 UNION ALL은 중복을 제거합니다. 그것은 당신에게 문제가되지 않을지도 모르지만 나는 그것을 지적하고 싶었습니다.

+0

30 개의 테이블이 변경되지 않습니다 (즉, 테이블을 추가하거나 삭제하지 않을 것입니다). 그렇다면 10 분 내에 쿼리를 끝내고 끝내라고 말합니다. proc을 만드는 데 너무 많은 시간을 할애해야합니다. –

+0

시간이 갈수록 30 개의 테이블이 증가합니다. 자동화 된 솔루션이 가장 좋습니다. 나는 모든 wp_n_options 테이블을 선택할 수있는 FROM 절에서 중첩 된 쿼리를 수행하려고 생각하고 있었지만 그것을 이해할 수는 없다. – Ivan

+0

순수 TSQL을 사용해야합니까, 아니면 C#과 같은 프로그래밍 언어를 사용할 수 있습니까? TSQL은 지난 20 년간 하위 호환성을 유지하려는 고풍의 언어와 같습니다. TSQL을 사용해야하는 경우 "INFORMATION_SCHEMA.TABLES에서 SELECT *를 (를) 선택하고 커서에 'wp_ %'와 같은 TABLE_NAME을 입력 한 다음 결과를 반복하여 쿼리를 작성하십시오. –

관련 문제