gpt4 book ai didi

php - 如何通过一次查询从多个数据库下载所有变量?

转载 作者:行者123 更新时间:2023-11-29 17:33:59 25 4
gpt4 key购买 nike

我有几个存储共享变量的表。如何通过一个查询从每个表中获取所有变量?以及如何返回示例中的所有变量?这可能吗?

$id1 = BDR::selectBySQL("g","SELECT * FROM i1 WHERE ix='".$this->ixx."' LIMIT 1");
foreach($id1 as $id1)
{
$id1 = $id1['idz'];

}
$id2 = BDR::selectBySQL("g","SELECT * FROM i2 WHERE ix='".$this->ixx."' LIMIT 1");
foreach($id2 as $id2)
{
$id2 = $id2['idxc'];

}
$id3 = BDR::selectBySQL("g","SELECT * FROM i3 WHERE ix='".$this->ixx."' LIMIT 1");
foreach($id3 as $id3)
{
$id3 = $id3['idsd'];

}
return ['id2'=>$id1,'id2'=>$id2,'id3'=>$id3];

最佳答案

如果表具有相同的架构(与列和相应的数据类型相同),您可以使用select union all

  SELECT * FROM i1 WHERE ix='".$this->ixx."' LIMIT 1 
union all
SELECT * FROM i2 WHERE ix='".$this->ixx."' LIMIT 1
union all
SELECT * FROM i3 WHERE ix='".$this->ixx."' LIMIT 1

通过这种方式,您应该检索具有所需结果的行列表,并迭代结果,您可以获取所需的所有值

$idAll = BDR::selectBySQL("g",
"SELECT * FROM i1 WHERE ix='".$this->ixx."' LIMIT 1
union all
SELECT * FROM i2 WHERE ix='".$this->ixx."' LIMIT 1
union all
SELECT * FROM i3 WHERE ix='".$this->ixx."' LIMIT 1 ");

foreach($idAll as $row)
{
$id[] = $row['idz'];

}

return $id;

您可以使用var_dump($id);检查$id数组的内容;

最后,如果表来自同一服务器上的不同数据库,您可以使用显式表名称,例如:db1.i1

关于php - 如何通过一次查询从多个数据库下载所有变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50438078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com