sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona DIV en MariaDB

En MariaDB, DIV realiza la división de enteros.

Descarta del resultado de la división cualquier parte fraccionaria a la derecha del punto decimal.

Sintaxis

La sintaxis es así:

DIV

Donde el número a dividir está a la izquierda y el número por el que dividirlo está a la derecha.

Ejemplo

He aquí un ejemplo:

SELECT 100 DIV 2;

Resultado:

+-----------+
| 100 DIV 2 |
+-----------+
|        50 |
+-----------+

Resultados fraccionarios

Como se mencionó, DIV descarta del resultado de la división cualquier parte fraccionaria a la derecha del punto decimal.

Ejemplo:

SELECT 100 DIV 3;

Resultado:

+-----------+
| 100 DIV 3 |
+-----------+
|        33 |
+-----------+

División por cero

Si el ERROR_FOR_DIVISION_BY_ZERO El modo SQL no está configurado, la división por cero devuelve NULL con una advertencia Si se establece, la división por cero devuelve un error si se intenta actualizar una columna con 1/0 y también devuelve una advertencia.

Aquí hay un ejemplo de un NULL resultado:

SELECT 100 DIV 0;

Resultado:

+-----------+
| 100 DIV 0 |
+-----------+
|      NULL |
+-----------+
1 row in set, 1 warning (0.001 sec)

Revisemos la advertencia:

SHOW WARNINGS;

Resultado:

+---------+------+---------------+
| Level   | Code | Message       |
+---------+------+---------------+
| Warning | 1365 | Division by 0 |
+---------+------+---------------+

Operandos no válidos

El uso de operandos no válidos da como resultado NULL con una advertencia:

SELECT 'One' DIV 'Two';

Resultado:

+-----------------+
| 'One' DIV 'Two' |
+-----------------+
|            NULL |
+-----------------+
1 row in set, 3 warnings (0.013 sec)

Revisa las advertencias:

SHOW WARNINGS;

Resultado:

+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DECIMAL value: 'One' |
| Warning | 1292 | Truncated incorrect DECIMAL value: 'Two' |
| Warning | 1365 | Division by 0                            |
+---------+------+------------------------------------------+