sql >> Database >  >> RDS >> MariaDB

Hoe MOD() werkt in MariaDB

In MariaDB, MOD() is een ingebouwde functie die de modulo-bewerking retourneert. Het retourneert de rest van zijn eerste argument gedeeld door zijn tweede argument.

Syntaxis

De syntaxis gaat als volgt:

MOD(N,M)

De functie retourneert de rest van N gedeeld door M .

De bewerking kan ook worden uitgevoerd met behulp van de modulo-operator, dus u kunt ook de volgende syntaxis gebruiken om hetzelfde resultaat te bereiken:

N % M
N MOD M

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT MOD(9, 2);

Resultaat:

+-----------+
| MOD(9, 2) |
+-----------+
|         1 |
+-----------+

Hier zijn er nog meer:

SELECT 
    MOD(8, 2),
    MOD(134, 6),
    MOD(9, 5),
    MOD(9, 10);

Resultaat:

+-----------+-------------+-----------+------------+
| MOD(8, 2) | MOD(134, 6) | MOD(9, 5) | MOD(9, 10) |
+-----------+-------------+-----------+------------+
|         0 |           2 |         4 |          9 |
+-----------+-------------+-----------+------------+

Vergeleken met de Modulo-operator

Hier is een voorbeeld dat de syntaxis van de functie en operators vergelijkt:

SELECT 
    MOD(9, 2),
    9 % 2,
    9 MOD 2;

Resultaat:

+-----------+-------+---------+
| MOD(9, 2) | 9 % 2 | 9 MOD 2 |
+-----------+-------+---------+
|         1 |     1 |       1 |
+-----------+-------+---------+

Niet-numerieke argumenten

Hier is een voorbeeld van wat er gebeurt als we niet-numerieke argumenten geven:

SELECT MOD('Homer', 'Symptom');

Resultaat:

+-------------------------+
| MOD('Homer', 'Symptom') |
+-------------------------+
|                    NULL |
+-------------------------+
1 row in set, 3 warnings (0.005 sec)

Laten we eens kijken naar de waarschuwing:

SHOW WARNINGS;

Resultaat:

+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer'   |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Symptom' |
| Warning | 1365 | Division by 0                               |
+---------+------+---------------------------------------------+

Nullargumenten

MOD() retourneert null als een van beide argumenten null is :

SELECT 
    MOD(null, 2),
    MOD(9, null),
    MOD(null, null);

Resultaat:

+--------------+--------------+-----------------+
| MOD(null, 2) | MOD(9, null) | MOD(null, null) |
+--------------+--------------+-----------------+
|         NULL |         NULL |            NULL |
+--------------+--------------+-----------------+

Ontbrekende argumenten

MOD() . aanroepen met het verkeerde aantal argumenten, of zonder argumenten resulteert in een fout:

SELECT MOD();

Resultaat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

En:

SELECT MOD(10, 2, 3);

Resultaat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' 3)' at line 1

  1. Het aantal dagen tussen twee datums vinden in MySQL

  2. Detecteren of waarde een getal is in MySQL

  3. De sortering opgeven in een query in SQL Server (T-SQL)

  4. SQL-TABEL