如何根据SQL中的条件显示查询?

How to display query based on condition in SQL?

我知道这很简单,但我仍然想知道为什么我没有得到我想要的输出:

SELECT 
    name, amount, status
FROM 
    asdfg
WHERE 
    status = '1' 
    AND Type = 'P' 
    AND id = 'O10' OR id = 'OM1' OR id = 'OM6'

但我得到这样的结果是错误的。如何确保只能显示 status = 1 的结果而不是 0

name  | amount | status
------+--------+-------
 lili |   35   |  0
 opi  |   47   |  0 
 moss |   14   |  0

这是逻辑优先级问题。 AND优先于OR,所以需要把OR条件放在括号里:

WHERE status = '1' 
  AND Type = 'P' 
  AND (id = 'O10' OR id = 'OM1' OR id = 'OM6')

更好的是,使用 IN:

WHERE status = '1' 
  AND Type = 'P' 
  AND id IN ('O10', 'OM1', 'OM6')