将sql结果作为数组获取

Posted

技术标签:

【中文标题】将sql结果作为数组获取【英文标题】:Getting sql result as Array 【发布时间】:2014-09-22 08:27:53 【问题描述】:

mysql 中是否可以从数据库中查询并以数组形式获取结果?

查询

SELECT foo.name,
(
   SELECT data 
   FROM bar 
   WHERE id=foo.userid
) data  
FROM table1 foo;

预期输出

+---------+------------------------+
| name    |  data                  |
+=========+========================+
| john    |  ['one','two','three'] |
| martha  |  ['one','five','nine'] |
+---------+------------------------+

谢谢!

【问题讨论】:

一个数组,还是每行一个数组?数组应该是什么样的?您指定的输出并不清楚。 SQL Results as php Array的可能重复 我相信这超出了经典关系 DBMS 的范围,对 ORM(对象关系映射)框架(例如 Hibernate)的研究,它们应该可以帮助您完成这项任务。 不行,必须是纯sql,不涉及php 数组表示在某些语言中是不同的。您需要准确说明您的需求才能获得帮助。 【参考方案1】:

您可以使用GROUP_CONCAT

SELECT foo.name,(SELECT GROUP_CONCAT(data SEPARATOR ',') 
                   FROM bar 
                  WHERE id=foo.userid
               GROUP BY data) AS data 
  FROM table1 foo;

【讨论】:

以上是关于将sql结果作为数组获取的主要内容,如果未能解决你的问题,请参考以下文章

如何将sql结果作为对象获取

使用 PostgreSQL/NodeJS 获取 JOIN 表作为结果数组

如何在 Laravel 中将连接结果作为对象数组获取?

Codeigniter:从单列中获取所有值作为数组

如何获取 JDBC SQL Count 结果为 int?

如何获取作为数组工作的存储过程输出参数?