MariaDBでは、MOD()
モジュロ演算を返す組み込み関数です。最初の引数の余りを2番目の引数で割った値を返します。
構文
構文は次のようになります:
MOD(N,M)
この関数は、N
の余りを返します M
で割った値 。
この演算はモジュロ演算子を使用して実行することもできるため、次の構文を使用して同じ結果を得ることができます。
N % M
N MOD M
例
デモンストレーションの例を次に示します。
SELECT MOD(9, 2);
結果:
+-----------+ | MOD(9, 2) | +-----------+ | 1 | +-----------+
さらにいくつかあります:
SELECT
MOD(8, 2),
MOD(134, 6),
MOD(9, 5),
MOD(9, 10);
結果:
+-----------+-------------+-----------+------------+ | MOD(8, 2) | MOD(134, 6) | MOD(9, 5) | MOD(9, 10) | +-----------+-------------+-----------+------------+ | 0 | 2 | 4 | 9 | +-----------+-------------+-----------+------------+
モジュロ演算子との比較
関数と演算子の構文を比較する例を次に示します。
SELECT
MOD(9, 2),
9 % 2,
9 MOD 2;
結果:
+-----------+-------+---------+ | MOD(9, 2) | 9 % 2 | 9 MOD 2 | +-----------+-------+---------+ | 1 | 1 | 1 | +-----------+-------+---------+
非数値引数
数値以外の引数を指定するとどうなるかの例を次に示します。
SELECT MOD('Homer', 'Symptom');
結果:
+-------------------------+ | MOD('Homer', 'Symptom') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 3 warnings (0.005 sec)
警告を見てみましょう:
SHOW WARNINGS;
結果:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1292 | Truncated incorrect DOUBLE value: 'Symptom' | | Warning | 1365 | Division by 0 | +---------+------+---------------------------------------------+
ヌル引数
MOD()
null
を返します いずれかの引数がnull
の場合 :
SELECT
MOD(null, 2),
MOD(9, null),
MOD(null, null);
結果:
+--------------+--------------+-----------------+ | MOD(null, 2) | MOD(9, null) | MOD(null, null) | +--------------+--------------+-----------------+ | NULL | NULL | NULL | +--------------+--------------+-----------------+
引数がありません
MOD()
の呼び出し 引数の数が間違っているか、引数がない場合、エラーが発生します:
SELECT MOD();
結果:
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
そして:
SELECT MOD(10, 2, 3);
結果:
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