簡體   English   中英

MySQL PHP - SELECT WHERE id = array()

[英]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是否在您選中的每個類別中。

DEMO

一般情況下,我會使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM