sql >> Base de Datos >  >> RDS >> Mysql

MIN() vs MENOS() en MySQL:¿Cuál es la diferencia?

En MySQL, la diferencia entre MIN() y LEAST() funciones es exactamente la misma que la diferencia entre MAX() y GREATEST() funciones.

En cada caso, ambas funciones realizan una operación similar, pero tienen una sintaxis diferente.

Sintaxis

La sintaxis de MIN() y LEAST() va así:

MIN([DISTINCT] expr) [over_clause]
LEAST(value1,value2,...)

Entonces el MIN() la función acepta DISTINCT palabra clave, así como un OVER cláusula (y el LEAST() la función no lo hace).

Pero la principal diferencia entre estas dos funciones está en los argumentos que aceptan. Específicamente:

  • MIN() acepta un argumento
  • LEAST() acepta múltiples argumentos

Entonces MIN() se usa normalmente para devolver el valor mínimo en una columna en una base de datos. La tabla puede contener muchas filas, pero esta función devuelve la que tiene el valor mínimo.

LEAST() por otro lado, devuelve el argumento de valor mínimo de la lista de argumentos que se le pasan. Por lo tanto, podría pasar, digamos, 3 argumentos a esta función y devolverá el que tenga el valor más pequeño.

Ejemplo 1:la función MIN()

Aquí hay un ejemplo para demostrar el MIN() función.

SELECT MIN(Population) AS 'Result'
FROM City;

Resultado:

+--------+
| Result |
+--------+
|     42 |
+--------+

Este ejemplo encuentra la ciudad con la menor población de la City mesa. La columna que contiene la población de cada ciudad se llama Population .

El punto principal de este ejemplo es que solo se proporcionó un argumento a la función, pero se consultaron varias filas.

Si intenta pasar múltiples argumentos a MIN() obtendrá un error.

Ejemplo 2:la función MENOS()

Aquí hay un ejemplo para demostrar el LEAST() función.

SELECT LEAST(1, 5, 9) AS 'Result';

Resultado:

+--------+
| Result |
+--------+
|      1 |
+--------+

Entonces, en este caso, proporcionamos tres argumentos. Cada argumento se compara con el otro. Esto contrasta con el único argumento proporcionado a MIN() función.

Si intenta pasar un único argumento a LEAST() obtendrá un error.