[英]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.