2013-04-14 48 views
0

假設我有一張如下圖所示的MySQL表,並且我想找到有過濾器2和5的任何product_id(因此在表中這將是30的product_id),是這可能在MySQL?或者我必須得到產品ID的filter_id是2或5,並在PHP中排序?只有MySQL才能得到結果

sql table

回答

2

SELECT product_id, COUNT(*) AS i FROM mytable WHERE filter_id IN (2,5) GROUP BY product_id HAVING i = 2;

這將匹配包含任何所需filter_ids和組的那些一起使用相同的PRODUCT_ID任何行。名字我已經被賦予了一個給出組中行數的列。假設product_id到filter_id的每個組合都是唯一的,那麼您知道任何具有兩行的組都將匹配兩個filter_id,因此HAVING子句將最終過濾掉只匹配其中一個filter_id的行。

相關問題