我有几个表正在由外部应用程序导入。他们的名字如Table_1Table_296等等。
在每个表中,都有一个名为Name的列。
我的问题是:如何检索所有表的名称,以便将它们放入另一个将从每个列检索行的查询中?
基本上,我需要检查值并列出包含它的表。
我可以使用下面的代码检索所有表名,但据我所知,不能使用变量选择所有表名。

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.tables WHERE TABLE_NAME LIKE '%Table%' AND TABLE_SCHEMA='mydb'

我还知道,如果未指定表名,则不能选择相同的列名。如果我错了,请纠正我

最佳答案

首先获取所有表名,然后循环如下

$con = mysqli_connect("localhost","root","","databaseName");
$listdbtables = array_column(mysqli_fetch_all($con->query('SHOW TABLES FROM databaseName')),0);
foreach ($listdbtables as $key => $value) {
    $sqlqry = "select Name from ".$value;
    $nameResult = mysqli_query($con,$sqlqry);
    while($nam = $nameResult->fetch_array()) {
      echo($nam['Name']);
    }
}

关于php - 从数据库中选择所有表,并在每个表中查询相同的列名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56473389/

10-09 06:05