19

我想返回我使用 group_concat 作为数据数组从数据库中检索的值。是否可以在 mysql 查询中执行此操作?还是我需要将数据分解成数组?

GROUP_CONCAT(sh.hold_id) as holds

返回这个

[holds] => 3,4

我希望它返回:

[holds] => array(3,4)
4

4 回答 4

19

正如我在评论中所说:您需要使用这样的php代码将数据分解为一个数组:

$holds = explode(',', $holds);

因为mysql没有数据数组类型的概念。

于 2012-07-31T16:52:43.567 回答
3

MySQL 没有数组的概念。因此它不能返回一个数组。将连接符号转换为 php 数组取决于您的处理代码(此处为 php 脚本)。

于 2012-07-31T16:49:51.923 回答
3

如果您需要在 MySQL 级别上执行此操作,那么您可能会将其解析为一个对象。您可以执行以下操作

SELECT CONCAT("[", GROUP_CONCAT(category.name), "]") AS categories
From categories
于 2020-05-21T16:44:31.027 回答
0

可以像这样返回 mysql JSON 数组,

json_array(GROUP_CONCAT(sh.hold_id)) as holds

请参阅文档以获取更多信息。

于 2021-10-27T22:38:19.637 回答