是否可以从MySQL表返回一个数组?

时间:2014-02-24 17:32:44

标签: mysql arrays

我有2个基本表 - 一个包含主ID记录的主表和一个包含可变数量的值引用的相关表,如下所示。

表A:主要(一)

+----+-------------+
| ID | description |
+----+-------------+
| 1  | Arnold      |
+----+-------------+
| 3  | Baker       |
+----+-------------+
| 7  | Charlie     |
+----+-------------+

表B:相关(许多)

+----+-------+
| ID | value |
+----+-------+
| 1  | 1     |
+----+-------+
| 1  | 2     |
+----+-------+
| 3  | 3     |
+----+-------+
| 3  | 2     |
+----+-------+
| 3  | 1     |
+----+-------+
| 7  | 2     |
+----+-------+

将表A与表B连接后,是否可以以表B中的value列作为数组返回的方式返回列?

我希望返回类似下面的结果集(基于上面的示例),其中第二列可以作为数组值而不是字符串值处理:

{
 [0] => 1
 [1] => array(1,2)
}
{
 [0] => 3
 [1] => array(3,2,1)
}
{
 [0] => 7
 [1] => array(2)
}

这是我的查询语句,用于将列作为字符串值:

SELECT tablea.*, tableb.value
FROM tablea
LEFT JOIN tableb ON tableb.ID = tablea.ID

1 个答案:

答案 0 :(得分:1)

通常,这是通过在使用应用程序逻辑读取结果集时构建多维数组来完成的。这是一些伪代码:

array = [];
while (row = {some DB row retrieval method}) {
    array[row['id']][] = row['value'];
}

如果PHP是您的语言:

$array = array();
while ($row = {some DB row retrieval method}) {
    $array[$row['id']][] = $row['value'];
}