Existe-t-il un moyen de garantir que toutes les valeurs d'une clause IN
sont identiques?
Exemple:
Je peux utiliser IN comme: IN (5,6,7,8)
.
J'en ai besoin pour fonctionner comme un AND
sur plusieurs lignes.
PDATE: J'en ai besoin pour lister les entreprises de la base de données qui correspondent aux paramètres spécifiés. Les entreprises et la taxonomie sont beaucoup de relations. J'utilise Yii framework. Et voici le code de mon contrôleur:
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,
));
}
Vous pouvez faire quelque chose comme ça:
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
Si vous fournissez votre schéma et quelques exemples de données, je peux fournir une réponse plus pertinente.
SELECT ItemID
FROM ItemCategory
WHERE (
(CategoryID = 5) OR
(CategoryID = 6) OR
(CategoryID = 7) OR
(CategoryID = 8)
)
GROUP BY ItemID
HAVING COUNT(DISTINCT CategoryID) = 4