带有多个运算符的SQL WHERE命令

时间:2014-12-19 20:39:00

标签: mysql sql

我们有一个数据库,其中一列标有“pr_label”和“pr_quantity”。当我们查询我们的信息时,标记为“C1”和“C2”的项目显示。下面是我们在SQL命令中使用的代码

'pr_label' IN ('C1', 'C2')

但是现在我们要添加一个额外的规则,我们要在“pr_quantity”中显示所有“C1”项目和仅显示值大于零的“C2”项目。因此,如果我们应用这些规则,下表将仅显示900,901,902和903的信息。由于'pr_quantity'== 0,因此不会显示904和905。

 =====================================
 pr_id     | pr_label  | pr_quantity |
 =====================================
 900       | C1        | 4           |
 901       | C1        | 4           |
 902       | C1        | 4           |
 903       | C2        | 4           |
 904       | C2        | 0           |
 905       | C2        | 0           |
 =====================================

我正在尝试下面的代码,但它适用于“C1”和“C2”。

`pr_quantity ` > 0

2 个答案:

答案 0 :(得分:3)

你应该能够简单地说:

WHERE (pr_label = 'C1')
    OR (pr_label = 'C2' AND pr_quantity > 0)

答案 1 :(得分:1)

回答这个问题

  

我们希望显示所有" C1"只有" C2"有物品的物品   " pr_quantity"

中的值大于零

以下查询会很方便(我将其称为产品表)

SELECT 
    *
FROM PRODUCT
WHERE 
pr_label = 'C1' OR (pr_label = 'C2' AND pr_quantity > 0)