簡體   English   中英

PHP Mysql,在單個查詢中獲取數組中的公共值

[英]PHP Mysql, to fetch a common values in an array within a single query

我在獲取表中的公用值時遇到麻煩,讓我解釋一下,我有一個名為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語句在此查詢中執行此操作只是為了提高效率? 任何建議將不勝感激..謝謝。

我不熟悉您使用的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”更改為其他內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM