我有一个名为orders的MySQL表:
[database.orders]
uuid | status | data | date
我一直依赖SQL查询来返回记录,但事实证明WHERE子句是错误的。
我想要的是uuid等于' xxx'并且状态等于' PROCESSED'或者' PAUSED。
我上次使用过:WHERE status='PROCESSED' OR status='PAUSED' AND uuid = 'xxx'
我现在看到这会返回处理状态或状态暂停的记录。 uuid =' xxx'
我尝试了以下方法,但没有成功:
WHERE (uuid = 'xxx' AND status = 'PROCESSED') OR (uuid = 'xxx' AND status = 'PAUSED')
WHERE uuid = 'xxx' AND (status = 'PROCESSED' OR status = 'PAUSED')
作为完整查询,该语句将显示为SELECT * FROM orders WHERE uuid = 'xxx' AND (status = 'PROCESSED' OR status = 'PAUSED')
。
如何按照描述返回预期结果?
答案 0 :(得分:0)
SELECT * FROM orders WHERE (status = 'PROCESSED' OR status = 'PAUSED') AND uuid = 'xxx';
这应该返回所有具有uuid =' xxx'以及“处理过的”状态值'或者'状态'
所以:
PKEY | UUID | Status
1 xxx PROCESSED
2 xxx PAUSED
3 xxx PROCESSED
4 xyz PROCESSED
5 xyz PAUSED
查询将与pkey匹配:1,2和3。