当前位置: 首页 > 面试题库 >

匹配IN子句中的所有值

耿和韵
2023-03-14
问题内容

有没有办法确保IN子句中的所有值都匹配?

例:

我可以将IN用作:IN (5,6,7,8)

我需要它像AND跨多个行一样工作。

更新: 我需要它来列出数据库中符合指定参数的公司。公司和分类法之间存在很多关系。我正在使用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,
    ));
}

问题答案:

您可以执行以下操作:

select ItemID
from ItemCategory
where CategoryID in (5,6,7,8) <-- de-dupe these before building IN clause
group by ItemID
having count(distinct CategoryID) = 4 <--this is the count of unique items in IN clause above

如果您提供架构和一些示例数据,我可以提供一个更相关的答案。

SQL小提琴示例



 类似资料:
  • 问题内容: 我有一个很长的查询,本质上是以下内容的扩展: 完成后,其中的where子句将有约40行。为了使此任务更容易,我希望做与以下类似的事情: 不幸的是,lease_id不是唯一字段,同一个suite_id可以有多个lease_id(因此,第二个查询不可用)。 鉴于此解决方案无法正常工作,是否有更好的方法来执行第一条更新语句? 问题答案: 您可以创建表类型并通过它传递值,如下所示: 如果您使用

  • 我试图匹配所有包含引号的句子,独立于引号的长度或引号内的句子数量。 正如Alfe所指出的,得到一个完美的正则表达式可能是不可行的,但是如果可能的话,我想改进我正在使用的正则表达式。 现在我这样做是为了找到报价: 但是我想确保引用出现在一个句子中,然后捕捉整个句子。 我所说的一句话是指一段文字: 通常前面有空格 正如阿尔夫指出的那样,这并不能涵盖所有的句子,但如果我能满足这些条件,那就足够了。 例如

  • 我有这样一个实体: 我正在使用(value,linkType)作为一个复合索引。对于给定的(v,t)元组列表,我们需要选择DB中的所有记录,使value=v,linkType=t。 基本上,我想构建这个查询:

  • 我一定错过了什么。我正在计算一个列表,想跳过特定的数字,所以我做了一个switch语句: 以下是输出: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 52 53 注意,44出现了,尽管我没

  • 例如,我想做这样的事情: 新建Select().from(Table).where(“id in?”,list).execute()

  • 记录具有id和名称 带有@Convert的DocumentModel 记录转换器 如果recordIds有多个值(例如:docId=1),即使: 嵌套选择不工作 IN子句有和没有()不工作 子句的成员不工作 导致本机SQL直接无法工作 @公式不工作 而且问题似乎是记录应该是单引号-逗号分隔的,而不仅仅是逗号分隔的,因为它们是字符串。(本机SQL查询在这种情况下工作)