我知道这很简单,但是我仍然想知道为什么我没有得到想要的输出:
SELECT
name, amount, status
FROM
asdfg
WHERE
status = '1'
AND Type = 'P'
AND id = 'O10' OR id = 'OM1' OR id = 'OM6'
但是我得到这样的结果,这是错误的。如何确保只能status = 1
显示with的结果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')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句