Согласование всех значений в разделе IN
Есть ли способ обеспечить соответствие всех значений в предложении IN
?
Пример:
Я могу использовать IN как: IN (5,6,7,8)
.
Мне нужно, чтобы он работал как AND
через несколько строк.
UPDATE:
Мне нужно это, чтобы перечислять компании из db, которые соответствуют указанным параметрам. Компании и таксономия МНОГИЕ МНОГИЕ отношения. Я использую структуру Yii. И это код моего контроллера:
public function actionFilters($list)
{
$companies = new CActiveDataProvider('Company', array(
'criteria' => array(
'condition'=> 'type=0',
'together' => true,
'order'=> 'rating DESC',
'with'=>array(
'taxonomy'=>array(
'condition'=>'term_id IN ('.$list.')',
)
),
),
));
$this->render('index', array(
'companies'=>$companies,
));
}
Ответы
Ответ 1
Вы можете сделать что-то вроде этого:
select ItemID
from ItemCategory
where CategoryID in (5,6,7,8)
group by ItemID
having count(distinct CategoryID) = 4 <--this number is # of unique items in IN clause
Если вы предоставите свою схему и некоторые примеры данных, я могу предоставить более релевантный ответ.
Пример скрипта SQL
Ответ 2
SELECT ItemID
FROM ItemCategory
WHERE (
(CategoryID = 5) OR
(CategoryID = 6) OR
(CategoryID = 7) OR
(CategoryID = 8)
)
GROUP BY ItemID
HAVING COUNT(CategoryID) = 4