繁体   English   中英

mysql查询使用AND和OR的子句

[英]mysql query where clause using AND and OR

有人可以帮我这个查询:

 SELECT SQL_CALC_FOUND_ROWS * 
          FROM Punches
          WHERE Serial LIKE '%123%'
          OR Badge LIKE '%123%'
          OR Search_Date LIKE '%123%'
          OR Punch_Time LIKE '%123%'
          OR Device_Name LIKE '%%'
          AND Company_ID = '0002'
          LIMIT 0, 20

本质上,我想搜索所有类似LIKE 123但必须具有Company_ID ='0002'的字段。 该查询返回没有Company_ID ='0002'的行

尝试这个...

 SELECT 
    SQL_CALC_FOUND_ROWS * 
 FROM 
    Punches
 WHERE 
    (Company_ID = '0002') AND 
    (Serial LIKE '%123%'
     OR Badge LIKE '%123%'
     OR Search_Date LIKE '%123%'
     OR Punch_Time LIKE '%123%'
     OR Device_Name LIKE '%%')
 LIMIT 0, 20

1) AND的优先级高于OR 只需加上括号即可:

SELECT SQL_CALC_FOUND_ROWS * 
          FROM Punches
          WHERE (... OR ... OR ...)
          AND Company_ID = '0002'
          LIMIT 0, 20

2) Device_Name LIKE '%%'始终为true。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM