gpt4 book ai didi

php - 从一个 SQL 语句中获取一列中的所有行

转载 作者:行者123 更新时间:2023-11-30 23:19:59 24 4
gpt4 key购买 nike

我正在寻找一种方法(通过 SQL 或 PHP)从 SQL 语句返回许多列,但能够一次迭代一列。

我有一个查询,例如:

ID | N1 | N2
1 | 15 | 20
2 | 25 | 30
3 | 35 | 40

我知道我可以使用 foreach $result as $row 并在循环中使用 $row['T1'],但我正在寻找一种将所有 $row['T1'] 放入数组而无需遍历它们的方法。我一直无法找到如何执行此操作。

我需要一个数组(或一组数组),其组织如下:

myArray = array( 'N1' => array('15', '25', '35'),
'N2' => array('20', '30', '40')
);

这样我就可以使用标准数组函数访问它们,例如 array_sum()array_slice()

有没有办法使用 MySQL、PHP(PDO) 以编程方式简单地为大量字段执行此操作?

我的 SQL 使用复杂的连接来获取许多字段,这些字段需要取平均值并打印到文本文件中。他们希望将字段组合在一起,而不是将所有字段都放在一个标准表中。

N1:
15
25
35
N2:
20
30
40

因此需要正确设置阵列。

那么:我可以使用哪种方法来做到这一点?我知道我可以遍历整个 $result 并将 $row['index'] 插入我自己的几个数组中,但肯定有更好的方法来做到这一点?对于复杂的联接,对每个字段分别进行单独查询是否更快?

最佳答案

SELECT n1 FROM yourtable
UNION ALL
SELECT n2 FROM yourtable

当您添加更多列时,这自然会变得非常低效。即使您只发出一个“查询”调用,在内部 DB 仍然必须分别执行联合中的每个成员查询。


重新阅读你的东西,也许这会更符合你想要的伪代码:

select N1, N2
from yourtable

$data = array()
while($row = fetch($result)) {
foreach($row as $col => $val) {
$data[$col][] = $val;
}
}

关于php - 从一个 SQL 语句中获取一列中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15932040/

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