Select 来自多个 MySQL 表的数据
Select Data From Multiple MySQL Tables
我正在 MySQL 中搜索函数,以便从具有相似名称的多个 table 中搜索 Select 行。例如:Proyect_1、Proyect_2、Proyect_3
所有 table 都有相同的列名,table 之间的唯一区别是 table 名称。它以前缀 'proyect' 开头。问题是程序不知道有多少 'proyect' table,所以我无法像往常一样列出它们和 select 数据
我需要这样的东西:
SELECT mydata FROM TABLES LIKE 'Proyect_%';
有什么想法吗?谢谢!
如果你想搜索名称如 Proyect 的所有 table,你可以从 MySQL 信息模式中获取。
SELECT * FROM information_schema.tables
从这里你可以通过table姓名
找到table
获取具有共同前缀的所有表
SHOW TABLES LIKE 'Proyect_%';
这将 return 行与前缀匹配的表格。示例:
Proyect_1
Proyect_2
Proyect_3
在 PHP
中,您可以创建一个 UNION
查询,该查询将选取由上述查询return编辑的表,
$sql = "SHOW TABLES LIKE 'Proyect_%'";
$result = $conn->query($sql);
$dataQuery = array();
$query = "";
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_array(MYSQLI_NUM)) {
$dataQuery[] = "SELECT * FROM {$row[0]}";
}
$query = implode(' UNION ', $dataQuery);
}
echo $query;
我正在 MySQL 中搜索函数,以便从具有相似名称的多个 table 中搜索 Select 行。例如:Proyect_1、Proyect_2、Proyect_3
所有 table 都有相同的列名,table 之间的唯一区别是 table 名称。它以前缀 'proyect' 开头。问题是程序不知道有多少 'proyect' table,所以我无法像往常一样列出它们和 select 数据
我需要这样的东西:
SELECT mydata FROM TABLES LIKE 'Proyect_%';
有什么想法吗?谢谢!
如果你想搜索名称如 Proyect 的所有 table,你可以从 MySQL 信息模式中获取。
SELECT * FROM information_schema.tables
从这里你可以通过table姓名
找到table获取具有共同前缀的所有表
SHOW TABLES LIKE 'Proyect_%';
这将 return 行与前缀匹配的表格。示例:
Proyect_1
Proyect_2
Proyect_3
在 PHP
中,您可以创建一个 UNION
查询,该查询将选取由上述查询return编辑的表,
$sql = "SHOW TABLES LIKE 'Proyect_%'";
$result = $conn->query($sql);
$dataQuery = array();
$query = "";
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_array(MYSQLI_NUM)) {
$dataQuery[] = "SELECT * FROM {$row[0]}";
}
$query = implode(' UNION ', $dataQuery);
}
echo $query;