[英]MySQL PHP - SELECT WHERE id = array()
我有一個包含以下字段的表...
id category_id product_id
1 1 1001
2 2 1001
3 1 1003
4 4 1001
5 1 1005
現在我正在嘗試使用類別ID獲取產品ID。
因此,假設在我的查詢字符串中,我通過www.demo.com/?category=1,2,4
我希望得到符合所有價值的產品(1,2,4)。 所以在這種情況下它應該只返回1001。
我怎樣才能實現這一目標?
使用IN()
:
SELECT * FROM table WHERE category_id IN(1,2,4);
您可以將IN()與GROUP BY和HAVING結合使用
SELECT
product_id
FROM
your table
WHERE
category_id IN (1, 2, 4)
GROUP BY
product_id
HAVING
COUNT(DISTINCT id) = 3;
說明
使用COUNT(DISTINCT id)=您可以檢查此product_id是否在您選中的每個類別中。
一般情況下,我會使用VMai上面的解決方案,但只是為了給你另一個選項,你可以自己加入表,每個可能的category_id一個: -
SELECT a.product_id
FROM table a
INNER JOIN table b ON a.product_id = b.product_id
INNER JOIN table c ON b.product_id = c.product_id
WHERE a.category = 1
AND b.category = 2
AND c.category = 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.