[英]How to check all array elements exists in Where In Clause in sql
我在創建一個 sql 查詢時遇到了一個問題。 實際上我想檢查 where 子句是否存在所有元素,如果所有元素都存在於 WhereIn 子句中,那么我想用 groupby 返回該記錄..這是我的一個表 produt_categories :-
id product_id category_id
1 1 1
2 1 2
當我申請時播種,如下所示:-
SELECT * FROM `product_categories`
WHERE category_id in (1,2,3) group by(product_id);
現在它返回給我這個結果:-
id product_id category_id
1 1 1
實際上它讓我很好,因為 whereIn 子句的實際行為。 所以我想要如果所有 category_id 1,2,3 都存在,那么它必須顯示記錄。 如果我通過 1,2,那么我也會來。 希望你們理解。請幫我創建qyuery
你可以使用HAVING
:
SELECT *
FROM `product_categories`
WHERE category_id in (1,2,3)
group by(product_id)
HAVING COUNT(DISTINCT category_id) = 3; -- #elements from `IN` clause
SELECT * FROM tab GROUP BY col
是一種反模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.