Pregunta

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?

¿Fue útil?

Solución

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')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top