我想用MySQL選擇多個表格。 但我不知道他們的名字,但他們都有相同的結構。MySQL:選擇多個表格
例如:
table_345:
id || row_1 || row_2 || row_3
我想有這樣的事情:
SELECT `id` FROM table_*
我想用MySQL選擇多個表格。 但我不知道他們的名字,但他們都有相同的結構。MySQL:選擇多個表格
例如:
table_345:
id || row_1 || row_2 || row_3
我想有這樣的事情:
SELECT `id` FROM table_*
如果你正在使用PHP和MySQL數據庫,您可以使用mysql_list_tables()獲得在表的列表中選擇數據庫。然後可以使用strpos()輕鬆篩選該列表。獲得表格列表後,可以使用SQL UNION合併表格中的結果集。
我希望你有一個很好的理由選擇這種設計,因爲它可能變得非常難看,非常快。
祝你好運。
在MySQL中,您可以使用information_schema.TABLES
(表名在MySQL中區分大小寫)來檢索表的列表。然後,您可以構建一個動態查詢並使用EXECUTE STMT
運行它。下面是一個例子:
SET @query = '';
SELECT *
FROM (
SELECT @query := CONCAT(@query,if(@query = '','',' union all '),
'select * from ', T.`TABLE_NAME`)
FROM information_schema.TABLES T
WHERE TABLE_SCHEMA = 'YourDatabaseName'
) sub
WHERE 1=0;
PREPARE STMT FROM @query;
EXECUTE STMT;
P.S.這樣的多行語句在查詢瀏覽器中不起作用,但它們在命令行中執行。將這些命令保存在一個名爲sqlcommands.txt
的文件中,您可以像這樣運行它們:
mysql -u user -p password dbname < sqlcommands.txt