MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie MOD() in MariaDB funktioniert

In MariaDB, MOD() ist eine eingebaute Funktion, die die Modulo-Operation zurückgibt. Es gibt den Rest seines ersten Arguments dividiert durch sein zweites Argument zurück.

Syntax

Die Syntax lautet wie folgt:

MOD(N,M)

Die Funktion gibt den Rest von N zurück dividiert durch M .

Die Operation kann auch mit dem Modulo-Operator durchgeführt werden, sodass Sie auch die folgenden Syntaxen verwenden können, um das gleiche Ergebnis zu erzielen:

N % M
N MOD M

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT MOD(9, 2);

Ergebnis:

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

Hier sind noch einige:

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

Ergebnis:

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

Im Vergleich zum Modulo-Operator

Hier ist ein Beispiel, das die Syntax der Funktionen und Operatoren vergleicht:

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

Ergebnis:

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

Nicht numerische Argumente

Hier ist ein Beispiel dafür, was passiert, wenn wir nicht-numerische Argumente angeben:

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

Ergebnis:

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

Sehen wir uns die Warnung an:

SHOW WARNINGS;

Ergebnis:

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

Null-Argumente

MOD() gibt null zurück wenn eines der Argumente null ist :

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

Ergebnis:

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

Fehlende Argumente

Aufruf von MOD() mit der falschen Anzahl von Argumenten oder ohne Argumente führt zu einem Fehler:

SELECT MOD();

Ergebnis:

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

Und:

SELECT MOD(10, 2, 3);

Ergebnis:

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