在mySQL查询中是OR WHERE和AND

Cur*_*tis 8 mysql sql

基本上,我试图从基于两种不同群体的SQL获取数据,t.type必须等于singlet.status有平等1,但作为t.org我想它同时获得DUALRA,这里就是我试图无济于事.

SELECT 
    COUNT( p.tID ) 
FROM 
    ticket AS t 
INNER JOIN 
    people AS p ON t.ID = p.tID 
WHERE 
    t.type = 'single' AND t.status='1' AND t.org = 'RA' OR t.org = 'DUAL'
Run Code Online (Sandbox Code Playgroud)

我很确定他们的方法可以让这个查询正常工作,而不是我的想法

egg*_*yal 25

AND具有更高的优先级OR,所以目前现有的表达被评估为:

WHERE 
    (t.type = 'single' AND t.status='1' AND t.org = 'RA') OR t.org = 'DUAL'
Run Code Online (Sandbox Code Playgroud)

要强制使用替代逻辑,需要包含明确的括号:

WHERE 
    t.type = 'single' AND t.status='1' AND (t.org = 'RA' OR t.org = 'DUAL')
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,可以使用MySQL的IN()运算符而不是OR:

WHERE 
    t.type = 'single' AND t.status='1' AND t.org IN ('RA','DUAL')
Run Code Online (Sandbox Code Playgroud)


Aer*_*roX 5

您可以使用IN条件:

WHERE 
    t.type = 'single' AND t.status = '1' AND t.org IN ('RA','DUAL')
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用方括号将条件分组:

WHERE
    t.type = 'single' AND t.status = '1' AND (t.org = 'RA' OR t.org = 'DUAL')
Run Code Online (Sandbox Code Playgroud)