2011-11-21 72 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過程來遍歷這些表名並構造一個類似於你的例子中的查詢字符串。然後使用exec命令運行該查詢字符串。

請注意,UNION刪除重複,而UNION ALL不刪除。這可能不是你的問題,但我只是想指出。

+0

但是,這是爲30個表不會改變(即你不會添加更多的表或刪除任何)?如果是這樣,我會說只需10分鐘即可完成查詢,並完成查詢。你會花費同樣多的時間或更多的時間來創建proc。 –

+0

隨着時間的推移,30個表格將會增加。自動化解決方案將是最好的。我正在考慮在FROM子句中進行某種嵌套查詢來選擇所有wp_n_options表,但我無法弄清楚。 – Ivan

+0

您是否必須使用純TSQL,或者您是否可以使用C#等編程語言? TSQL就像是過去二十年裏試圖保持向後兼容的古老語言。如果您需要使用TSQL,請將類似於「select * from INFORMATION_SCHEMA.TABLES」的TABLE_NAME放置到遊標中,然後遍歷結果以進行查詢。 –

相關問題