Função MySQL FLOOR()
A função `FLOOR()` do MySQL é usada para retornar o maior valor inteiro que é menor ou igual a um determinado número. Ele efetivamente arredonda um número de ponto flutuante para o inteiro mais próximo, operando em números positivos e negativos.
Uso
A função `FLOOR()` é comumente usada quando você precisa truncar valores decimais em números inteiros sem arredondamento. Isso pode ser útil em cenários como cálculo de descontos ou manipulação de lógica baseada em números inteiros.
sql
FLOOR(number);
Nessa sintaxe, `number` é a expressão numérica que você deseja arredondar para baixo. Isso pode ser uma constante, um valor de coluna ou uma expressão mais complexa.
Exemplos
1. Uso básico
sql
SELECT FLOOR(3.75);
Essa consulta retorna `3`, pois `FLOOR()` arredonda 3,75 para o número inteiro mais próximo.
2. Usando FLOOR() com números negativos
sql
SELECT FLOOR(-4.2);
Nesse exemplo, a função retorna `-5`, pois `-5` é o maior número inteiro menor ou igual a `-4,2`, ilustrando o conceito de arredondamento para baixo com números negativos.
3. Aplicação de FLOOR() em uma consulta de tabela
sql
SELECT product_name, FLOOR(price) AS discounted_price
FROM products;
Essa consulta seleciona o nome de cada produto e aplica a função `FLOOR()` à coluna `price`, exibindo efetivamente o componente inteiro de cada preço como `discounted_price`.
4. Usando FLOOR() com números grandes e zero
sql
SELECT FLOOR(0), FLOOR(123456789.987);
Essa consulta demonstra que `FLOOR()` retorna `0` para zero e `123456789` para um número grande, mostrando um comportamento consistente em diferentes intervalos de entrada.
5. Combinando FLOOR() com outras funções
sql
SELECT FLOOR(ABS(-5.7) * 2);
Aqui, `FLOOR()` é usado em conjunto com `ABS()` para arredondar para baixo o valor absoluto de `-5,7` multiplicado por `2`, ilustrando seu uso em expressões mais complexas.
Dicas e práticas recomendadas
- Use para cálculos de números inteiros. O `FLOOR()` é ideal quando você trabalha com números inteiros em cálculos, evitando arredondamentos inesperados.
- Considere o desempenho. Embora `FLOOR()` seja geralmente eficiente, seu uso em colunas computadas ou exibições pode exigir estratégias de indexação para que você tenha um desempenho ideal.
- Esteja ciente dos valores negativos. Lembre-se de que `FLOOR()` pode produzir resultados inesperados com números negativos devido ao seu comportamento de arredondamento para baixo.
- Combine com outras funções. Use `FLOOR()` com outras funções como `ABS()` ou `MOD()` para operações matemáticas mais complexas.