我想得到带有多个LIKE子句的多个where条件的结果。我尝试使用下面的查询:
select * from ALL_Post where ActiveStatus = '1' AND Status = 'PENDING' AND inspectorName LIKE '%"+searchText+"%' OR REMARK LIKE '%"+searchText+"%' OR HashTag LIKE '%"+searchText+"%' ORDER BY ActionDate DESC
但是我希望得到结果,当至少任何条件为真时,ActiveStatus ='1'和Status ='PENDING',带有OR子句和OR子句。
但是查询不能返回正确的结果。可以建议如何在上面写出正确的查询。
答案 0 :(得分:1)
documentation记录了AND和OR运算符的优先级。要以不同的顺序评估它们,您必须使用括号:
SELECT *
FROM ALL_Post
WHERE ActiveStatus = '1'
AND Status = 'PENDING'
AND (inspectorName LIKE '%"+searchText+"%' OR
REMARK LIKE '%"+searchText+"%' OR
HashTag LIKE '%"+searchText+"%')
ORDER BY ActionDate DESC;