从 mysql 结果创建一个 id 数组

Posted

技术标签:

【中文标题】从 mysql 结果创建一个 id 数组【英文标题】:Create an id array from mysql results 【发布时间】:2014-01-16 02:38:30 【问题描述】:

如何从只选择 ID 的 mysql 查询创建 id 数组。 所以我想得到数组(id, id, id);

这是我的代码:

$group = User::find($user)->group()->get(array('group.jid'));

当前返回的代码:

[

   
    "jid": 1
   ,
   
    "jid": 3
   

]

我该怎么做才能获得jid: 1,3?所以我可以将它添加到where in 查询中?

WhereIn('id', $group)->get();

【问题讨论】:

您希望这些数字在一个数组中还是在一个字符串中? 试试这个User::find($user)->group()->lists('jid'); 它应该返回一个带有jid的数组 @Altrim 这很有希望,但我得到了Column 'jid' in field list is ambiguous。所以我把它改成了groups.jid。但仍然是同样的错误。 @user3134069 我不知道您是如何设置关系的,但是如果您正确设置了所有内容并且如果您阅读了selectslaravel.com/docs/queries#selects 上的文档,您将看到lists方法返回你想要的。 @Altrim 我明白了。刚刚在列表前添加了一个选择。如果你愿意回答我会接受。 【参考方案1】:

要检索列值列表,您可以在查询中使用方法lists

User::find($user)->group()->lists('jid');

我猜您会收到关于 id 不明确的错误,因为您在父查询中具有相同的列名,因此您必须明确选择它。

【讨论】:

以上是关于从 mysql 结果创建一个 id 数组的主要内容,如果未能解决你的问题,请参考以下文章

NodeJs 从 MySQL 查询结果创建新数组

从 MySQL 结果创建分层数组

从mysql查询php创建数组

PHP从获取数组创建一个数组

Sequelize - 从数组批量创建

Php Mysql NOT IN 数组只影响数组中的第一个结果