有一个分配给产品的过滤器ID列表。 可以将多个过滤器分配给相同的产品。 因此,如果根据通过过滤器的ID我期待的查询,以获取产品ID
例如我有
$filter_id = Array
(
[0] => 2
[1] => 12
...
)
在这种情况下,它应该返回产品编号40,我需要匹配所有的过滤器ID来获得特定产品所以我用AND
我试图 SELECT PRODUCT_ID FROM表名WHERE过滤器_id = 2,过滤器_id = 12
由于
有一个分配给产品的过滤器ID列表。 可以将多个过滤器分配给相同的产品。 因此,如果根据通过过滤器的ID我期待的查询,以获取产品ID
例如我有
$filter_id = Array
(
[0] => 2
[1] => 12
...
)
在这种情况下,它应该返回产品编号40,我需要匹配所有的过滤器ID来获得特定产品所以我用AND
我试图 SELECT PRODUCT_ID FROM表名WHERE过滤器_id = 2,过滤器_id = 12
由于
以下是您如何找到同时具有2,12和filter_id的产品。
select product_id
from products
where filter_id in (2,12)
group by product_id
having count(distinct filter_id) = 2
您需要更改
having count(distinct filter_id) = 2
到要检查过滤器_id的数量。
只是使用filter_id in (2,12)
到您的查询将返回所有具有2或12
您的查询
SELECT product_id FROM tablename WHERE filter_id = 2 AND filter_id = 12
将返回0行,因为不能有filterid等于2和12的Sametime一排,它是在关系数据库设计不可能
相反请使用IN operator为列指定多个必需的值。
SELECT product_id FROM tablename WHERE filter_id IN(2,12)
是那么究竟什么是问题的产品? –