sql组和条件

时间:2018-03-28 10:30:10

标签: mysql sql

如何使用AND语句选择产品选项? DEMO

我需要选择所有产品选项,比较两列,但我做错了......

SELECT * FROM `cart_option` 
WHERE (`cart_option`.`product_id`=100) 
AND ((`option_id`=2 AND `option_value_id`=3)) AND ((`option_id`=1 AND `option_value_id`=2))

我应该如何对AND语句进行分组?

5 个答案:

答案 0 :(得分:2)

您不能仅使用AND,option_id不能同时等于2且等于1。 这应该可以解决问题

SELECT
    *
FROM
    cart_option
WHERE
    cart_option.product_id = 100
AND ((option_id = 2 AND option_value_id = 3) OR
     (option_id = 1 AND option_value_id = 2))

答案 1 :(得分:0)

如果我理解正确,您会ANDOR混淆......

SELECT
    *
FROM
    cart_option
WHERE 
    cart_option.product_id=100
AND (
        (option_id=2 AND option_value_id=3)
        OR
        (option_id=1 AND option_value_id=2)
)

答案 2 :(得分:0)

你想这样吗?

SELECT * FROM cart_option`
WHERE (cart_option.product_id=100) 
OR ((option_id=2 AND option_value_id=3)) 
OR ((option_id=1 AND option_value_id=2))

答案 3 :(得分:0)

只需用OR替换AND

((`option_id`=2 AND `option_value_id`=3) OR (`option_id`=1 AND `option_value_id`=2))

答案 4 :(得分:0)

使用:

SELECT COUNT(*)
FROM cart_option
WHERE cart_option.product_id = 100
  AND (option_id, option_value_id) IN ((2, 3), (1, 2))

如果表格中存在两行,则结果必须为2