SQL - AND在Like语句之后被忽略


SQL - AND gets ignored after Like STATEMENT

SELECT * FROM cars WHERE carBrand LIKE '%alfa%' OR carModel LIKE '%alfa%'

我在那句话之后的所有内容都被忽略了。我希望能做到这一点。

SELECT * FROM cars
WHERE carBrand LIKE '%alfa%'
OR carModel LIKE '%alfa%' AND carType = 'truck'

这个会被忽略。

AND carType = 'truck'

为什么?

使用括号

SELECT * FROM cars 
WHERE (carBrand LIKE '%alfa%' OR carModel LIKE '%alfa%')
AND carType = 'truck'

AND的结合力比OR强。它叫做运算符优先级。如果没有括号,查询将编译为

SELECT * FROM cars 
WHERE carBrand LIKE '%alfa%' 
OR (carModel LIKE '%alfa%' AND carType = 'truck')