【发布时间】:2012-07-23 01:51:59
【问题描述】:
有没有办法确保IN 子句中的所有值都匹配?
例子:
我可以将 IN 用作:IN (5,6,7,8)。
我需要它像 AND 一样跨多行工作。
更新: 我需要这个来列出符合指定参数的 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,
));
}
【问题讨论】:
-
你想要什么结果? AND 是一个布尔运算符;您希望它对数字列表做什么?
-
不确定您在这里要求什么。在 WHERE 子句中使用 IN 时,将为您提供字段值与这些值之一匹配的所有行。一个文件不可能有所有这些值,所以我不知道你在从这个理论上的 AND() 函数中寻找什么。
-
我正在使用它根据标准列出来自 db 的行。此条件是分类 ID 列表。
-
有什么替代方案?
-
@RPM 引用需要。我认为您可能对在子查询中使用 IN 感到困惑,这很慢,因为子查询将针对每条记录运行。在常量列表上使用 IN 从来没有任何问题。如果有什么我期望它会更快。