CAST() 関数、SUBSTRING() 関数とLTRIM() 関数、REGEXP_EXTRACT() 関数の比較
MariaDBで整数値を取得するビルトイン関数について
CONV() 関数
概要:
CONV() 関数は、数値を指定された基数に変換して文字列に変換します。
構文:
CONV(number, base)
引数:
- number: 変換する数値
- base: 変換する基数 (2から36までの整数)
戻り値:
- 変換された文字列
例:
SELECT CONV(10, 2); # 結果: "1010"
SELECT CONV(15, 16); # 結果: "F"
TO_BASE() 関数
TO_BASE() 関数は、数値を指定された基数に変換して文字列に変換します。CONV() 関数と似ていますが、より多くのオプションを提供します。
TO_BASE(number, base, [format])
-
format (オプション): 出力形式
- 'SIGNED': 符号付き
SELECT TO_BASE(10, 2); # 結果: "1010"
SELECT TO_BASE(15, 16, 'UNSIGNED'); # 結果: "F"
SELECT TO_BASE(-10, 2, 'SIGNED'); # 結果: "-1010"
BIN() 関数
BIN(number)
- 2進数表記の文字列
SELECT BIN(10); # 結果: "1010"
SELECT BIN(-10); # 結果: "-1010"
OCT() 関数
OCT(number)
SELECT OCT(10); # 結果: "12"
SELECT OCT(-10); # 結果: "-12"
HEX() 関数
HEX(number)
SELECT HEX(10); # 結果: "A"
SELECT HEX(-10); # 結果: "FFFFFA"
MariaDBには、数値を様々な基数に変換するためのビルトイン関数が用意されています。これらの関数は、データ分析やデータベース操作など、様々な場面で役立ちます。
-- 1. CONV() 関数
SELECT CONV(10, 2); # 結果: "1010"
SELECT CONV(15, 16); # 結果: "F"
-- 2. TO_BASE() 関数
SELECT TO_BASE(10, 2); # 結果: "1010"
SELECT TO_BASE(15, 16, 'UNSIGNED'); # 結果: "F"
SELECT TO_BASE(-10, 2, 'SIGNED'); # 結果: "-1010"
-- 3. BIN() 関数
SELECT BIN(10); # 結果: "1010"
SELECT BIN(-10); # 結果: "-1010"
-- 4. OCT() 関数
SELECT OCT(10); # 結果: "12"
SELECT OCT(-10); # 結果: "-12"
-- 5. HEX() 関数
SELECT HEX(10); # 結果: "A"
SELECT HEX(-10); # 結果: "FFFFFA"
これらのコードを実行することで、各関数の動作を確認することができます。
補足
- 上記のサンプルコードは、MariaDB 10.5.12で動作確認しています。
MariaDBで整数値を取得するその他の方法
CAST() 関数
CAST() 関数は、データ型を変換する関数です。数値を文字列に変換し、その文字列を整数に変換することで、整数値を取得することができます。
CAST(expression AS type)
- expression: 変換する式
- type: 変換後のデータ型
SELECT CAST('10' AS INT); # 結果: 10
SELECT CAST('12' AS SIGNED); # 結果: 12
SELECT CAST('-12' AS SIGNED); # 結果: -12
SUBSTRING() 関数とLTRIM() 関数
SUBSTRING() 関数は、文字列の一部を切り出す関数です。LTRIM() 関数は、文字列の左側から空白文字を除去する関数です。これらの関数を組み合わせることで、文字列から数値部分のみを取り出し、整数値に変換することができます。
SELECT LTRIM(SUBSTRING(string, start_position, length));
- string: 変換する文字列
- start_position: 切り出す開始位置
- length: 切り出す文字列の長さ
SELECT LTRIM(SUBSTRING('10 20', 1, 2)); # 結果: "10"
SELECT LTRIM(SUBSTRING('-12 34', 1, 3)); # 結果: "-12"
REGEXP_EXTRACT() 関数
REGEXP_EXTRACT() 関数は、正規表現を使用して文字列から部分文字列を抽出する関数です。数値を表す正規表現を使用して、文字列から数値部分のみを取り出し、整数値に変換することができます。
SELECT REGEXP_EXTRACT(string, pattern);
- pattern: 抽出する部分文字列を表す正規表現
SELECT REGEXP_EXTRACT('10 20', '^\\d+'); # 結果: "10"
SELECT REGEXP_EXTRACT('-12 34', '^[-+]?\\d+'); # 結果: "-12"
MariaDBで整数値を取得するには、ビルトイン関数以外にも様々な方法があります。それぞれの方法の特徴を理解し、状況に合わせて適切な方法を選択することが重要です。
mariadb