如何根据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')
我知道这很简单,但我仍然想知道为什么我没有得到我想要的输出:
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')