MariaDB / MySQLの数値関数まとめ|ROUND, CEIL, MOD, POWなどの使い方と実例
MariaDBやMySQLで数値を丸めたり、余りを求めたり、累乗や平方根を計算したいときに便利なのが、数値関数です。
このページでは、ROUND()、CEIL()、FLOOR()、MOD()、POW()、SQRT() など、よく使われる数値関数の構文と出力例を紹介します。
「mysql round 小数点」「mariadb mod 使い方」「sql pow 関数」などのキーワードでお探しの方におすすめです。
- MOD(n, m)
-
n を m で割った余り(剰余)
SELECT MOD(10, 3) AS col; +------+ | col | +------+ | 1 | +------+ SELECT MOD(3.2, 1.2) AS col; +------+ | col | +------+ | 0.8 | +------+
- ABS(x)
-
x の絶対値を返す
SELECT ABS(-9.8) AS col; +-----+ | col | +-----+ | 9.8 | +-----+ - FLOOR(x)
-
x 以下で最大の整数値を返す(切り捨て)
負の値を指定した場合にTRUNCATEと違う値を返すので注意。SELECT FLOOR(3.99) AS col; +-----+ | col | +-----+ | 3 | +-----+ SELECT FLOOR(-3.99) AS col; +-----+ | col | +-----+ | -4 | +-----+
- TRUNCATE(x, d)
-
小数点以下 d 桁目未満を切り捨てます(切り捨て)
負の値を指定した場合にFLOORと違う値を返すので注意。SELECT TRUNCATE(3.99, 0) AS col; +-----+ | col | +-----+ | 3 | +-----+ SELECT TRUNCATE(-3.99, 0) AS col; +-----+ | col | +-----+ | -3 | +-----+
- ROUND(x[, d])
-
四捨五入して小数点以下 d 桁に丸めます
SELECT ROUND(3.99, 0) AS col; +-----+ | col | +-----+ | 4 | +-----+ SELECT ROUND(-3.99, 0) AS col; +-----+ | col | +-----+ | -4 | +-----+
- CEILING(x) 又は CEIL(x)
-
x 以上で最小の整数値を返します(切り上げ)
SELECT CEILING(3.01) AS col; +-----+ | col | +-----+ | 4 | +-----+ SELECT CEILING(-3.01) AS col; +-----+ | col | +-----+ | -3 | +-----+
- LEAST(x1, x2, ...)
-
引数(x1, x2, ...)の中で最小の値を返します
SELECT LEAST(3.01, -9, 24.3) AS col; +-------+ | col | +-------+ | -9.00 | +-------+ - GREATEST(x1, x2, ...)
-
引数(x1, x2, ...)の中で最大の値を返します
SELECT GREATEST(3.01, -9, 24.3) AS col; +-------+ | col | +-------+ | 24.30 | +-------+ - FORMAT(x,d)
-
数値 x を '#,##0.##' の3桁区切りの書式に変換し、小数点以下桁数 d に丸めて返す。
SELECT FORMAT(1533.545, 2) AS col; +----------+ | col | +----------+ | 1,533.55 | +----------+ SELECT FORMAT(0.045, 2) AS col; +------+ | col | +------+ | 0.05 | +------+
- RAND() 又は RAND(seed)
-
0以上1未満のランダムな浮動小数点値を返す。
seedが指定された場合はランダムシード値として使用されます。
SELECT RAND() AS col; +--------------------+ | col | +--------------------+ | 0.8328187827326532 | +--------------------+
