Assim como em qualquer linguagem de programação, o MySQL obedece uma ordem quando encontra vários operadores em um mesmo comando. É muito importante conhecê-la, pois isso pode resolver problemas de dados sendo retornados incorretamente graças a incorreta formulação do comando. Vejam a tabela abaixo:
6 () Parênteses
5 / ou * Divisão ou Multiplicação, o que aparecer primeiro no comando
4 - ou + Subtração ou Soma, o que aparecer primeiro no comando
3 NOT Negação
2 AND E Lógico
1 OR OU Lógico
Através desta tabela podemos perceber que o parênteses é o operador presente no topo da pirâmide hierarquica e o operador com menor prioridade é o OU Lógico. Vou demonstrar isso na prática, criando uma situação em que os parênteses sejam usados para inverter a precedência de outros operadores.
De acordo com a tabela acima, a multiplicação é executada antes da soma. Vamos verificar na prática com o seguinte comando:
select codigo*2+5 AS RESULTADO from filme WHERE codigo=4;
Mas, se quiséssemos forçar a multiplicação primeiro, bastaríamos acrescentar parênteses nela, da seguinte forma:
select codigo*(2+5) AS RESULTADO from filme WHERE codigo=4;
Agora, com o resultado sendo 28, podemos perceber que a soma, mesmo tendo precedência mais baixa que a multiplicação, foi executada primeiro, graças aos parênteses, que têm prioridade sobre quem está fora deles. O que é importante que fique bem claro com este pequeno tópico é que é necessário ter muita atenção no momento de montar suas consultas SQL. Para consultas pequenas, envolvendo uma única tabela ou até duas, é fácil montar o comando correto, mas para consultas mais complexas a atenção precisa ser redobrada.