web-dev-qa-db-fra.com

Correspondance avec toutes les valeurs de la clause IN

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,
    ));
}
38
Dima Knivets

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.

SQL Fiddle Example

66
RedFilter
 SELECT ItemID
     FROM ItemCategory
        WHERE (
               (CategoryID = 5) OR 
               (CategoryID = 6) OR 
               (CategoryID = 7) OR 
               (CategoryID = 8)
              )
     GROUP BY ItemID
 HAVING COUNT(DISTINCT CategoryID) = 4
3
Ryan