有一個分配給產品的過濾器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)
是那麼究竟什麼是問題的產品? –