문제

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

Everything i put after that sentence just gets ignored. I was hoping to be able to do this.

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

This just gets ignored.

AND carType = 'truck'

Why?

도움이 되었습니까?

해결책

Use parentheses

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

AND binds stronger than OR. It's called Operator Precedence. Without parentheses your query compiles to

SELECT * FROM cars 
WHERE carBrand LIKE '%alfa%' 
OR (carModel LIKE '%alfa%' AND carType = 'truck')
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top