PHP Mysql,用于在单个查询中获取数组中的公共值

时间:2014-06-02 10:59:18

标签: php mysql

我在获取表中的常用值时遇到问题,让我解释一下,我的表名为group_id,这里有3列groupid,userid,id,在查询中我是现在在结果中传递groupid数组我获得了我所经过的所有组中的所有用户,为此我使用以下代码:

public function enlistusers($groupid) {
        $select = $this->_table->select();
        $select->from(array('a' => 'groups'),array());        
        $select->where ('a.groupid IN (?)',$groupid);
$rows = $this->_table->fetchAll($select)->toArray();
        if(empty($rows)) { return null; }
        return $rows;
}

在获取所有用户之后,我想要所有组中的普通用户为我传递的groupid,是否有任何mysql语句在此查询中执行此操作只是为了使其有效? 任何suggention将不胜感激.. 谢谢。

1 个答案:

答案 0 :(得分:0)

我不熟悉你正在使用的mysql类,但是在纯mysql查询中你想要的方法是这样的:

"SELECT *
FROM a as groups
WHERE a.groupid IN ".implode(',',$groupid)."
GROUP BY id
HAVING COUNT(DISTINCT a.groupid) = ".count($groupid);

如果您没有id列

,请将“GROUP BY id”更改为其他内容
相关问题