Pergunta

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?

Foi útil?

Solução

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top