[英]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.