mysql - 是否可以从 MySQL 表返回数组?

标签 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

最佳答案

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

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'];
}

关于mysql - 是否可以从 MySQL 表返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21994763/

相关文章:

mysql - 有没有办法为 mysql 列添加多个外键,但它们应该引用其他表中的行?

php - MYSQL 根据条件 1 联接,否则根据条件 2 联接

java - 如何将 MySQL 表的列的值检索到代码中?

c# - 从 C# 调用不安全的 C++ 时出现 System.AccessViolationException

arrays - 如何从数组中打乱文本而不重复单词并遍历整个数组? ( swift )

Java 多维 ArrayList Int

mysql - 登录用户存储在mysql的哪里?

java - 使用Java读取音频文件并显示波形。

arrays - 如何在 Swift 中合并两个自定义类型数组并删除重复的自定义类型项?

php - MySQL:相同的值不相同