我處於需要檢查數據庫中的任何表中是否存在特定記錄的情況。檢查數據庫中的任何不同表中是否存在記錄
所有表具有相同的結構,但創建不同表的原因僅僅是對它們進行分類。
我想做一個查詢,檢查是否存在任何表中的特定記錄。看看聯盟,我想這將是一個開銷,因爲我有大約100個不同的表,其中一些有30萬條記錄...
有人可以引導正確的方向......它也想知道Google搜索引擎做的事情......
謝謝
我處於需要檢查數據庫中的任何表中是否存在特定記錄的情況。檢查數據庫中的任何不同表中是否存在記錄
所有表具有相同的結構,但創建不同表的原因僅僅是對它們進行分類。
我想做一個查詢,檢查是否存在任何表中的特定記錄。看看聯盟,我想這將是一個開銷,因爲我有大約100個不同的表,其中一些有30萬條記錄...
有人可以引導正確的方向......它也想知道Google搜索引擎做的事情......
謝謝
好吧,如果你只需要做一次,就可以生成一堆,你可以運行,看看其中是否實際上返回一些SQL語句。顯然用大括號替換你需要的東西。如果你需要反覆這樣做,那麼一定要看看別的。
SELECT CONCAT('SELECT {something} from', GROUP_CONCAT(table_name) , 'where {something_else};')
AS statement FROM information_schema.tables
WHERE
table_schema = '{database_name}'
table_name LIKE '{myprefix}%';
首先在查詢下面運行。例如,我有數據庫命名測試。它包含5個具有相同結構的表格。 SELECT CONCAT( 'SELECT * FROM',TABLE_NAME '其中COL_NAME =價值', '聯盟 ')FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA =' 測試'
在這裏,你可以得到一個結果集,這樣
SELECT * FROM消息UNION SELECT * FROM messaging1 UNION SELECT * FROM messaging2 UNION SELECT * FROM messaging3 UNION SELECT * FROM messaging4 UNION SELECT * FROM messaging5 UNION
運行這個結果集然後您可以從所有表中獲取所需記錄
注意:在查詢結束時刪除'UNION'。
如果您有任何問題,請讓我知道。
爲什麼不使用稱爲'category'的新列對它們進行分類? –
如果表格相同,爲什麼不創建一個類別字段並使用一個大表? – Melanie
我應該做到了,但現在我的方式來回復這些東西:( – troy