Home > OS >  Multiple conditional check with multiple column in same row Mysql
Multiple conditional check with multiple column in same row Mysql

Time:09-30

I want to select data from the below table as per matching of two columns with multiple conditional checks.

enter image description here

I want to check conditions like the following.

When product_category_variants_id = 1 and product_category_variants_value_id = 2 and again product_category_variants_id = 2 and product_category_variants_value_id = 5. Then I need to get out put 8,7 and 6.

I tried the following MySQL Query to archive the above result.

SELECT DISTINCT `product_id` FROM `product_variants` WHERE (`product_category_variants_id` = 1 AND `product_category_variants_values_id` = 2) AND (`product_category_variants_id` = 2 AND `product_category_variants_values_id` = 5);

CodePudding user response:

You need an aggregation query here, as the two conditions in your WHERE clause can never simultaneously be true for any given record.

SELECT product_id
FROM product_variants
GROUP BY product_id
HAVING SUM(product_category_variants_id = 1 AND product_category_variants_values_id = 2) > 0 AND
       SUM(product_category_variants_id = 2 AND product_category_variants_values_id = 5) > 0;
  • Related