- カテゴリ:
TRY_TO_BINARY¶
同じ操作を実行する(入力式をバイナリ値に変換する)が、エラー処理がサポートされている TO_BINARY の特別バージョンです。(つまり、変換を実行できない場合、エラーを発生させる代わりに NULL 値を返します)。
詳細については、次をご参照ください。
構文¶
TRY_TO_BINARY( <string_expr> [, '<format>'] )
引数¶
必須:
string_expr
文字列式です。
オプション:
format
変換用のバイナリ形式:HEX、 BASE64、または UTF-8( Binary Input and Output を参照)。デフォルトは、 BINARY_INPUT_FORMAT セッションパラメーターの値です。このパラメーターが設定されていない場合、デフォルトは HEXです。
戻り値¶
BINARY 型の値を返します。
使用上の注意¶
文字列式でのみ機能します。
format
が指定されているが、HEX、BASE64、またはUTF-8ではない場合、結果は NULL 値になります。
例¶
これは、16進数でエンコードされた文字列を BINARY 列に読み込むときに TRY_TO_BINARY
関数を使用する方法を示しています。
テーブルを作成して入力します。
CREATE TABLE strings (v VARCHAR, hex_encoded_string VARCHAR, b BINARY); INSERT INTO strings (v) VALUES ('01'), ('A B'), ('Hello'), (NULL); UPDATE strings SET hex_encoded_string = HEX_ENCODE(v); UPDATE strings SET b = TRY_TO_BINARY(hex_encoded_string, 'HEX');TRY_TO_BINARY()を呼び出して、テーブルをクエリします。
SELECT v, hex_encoded_string, TO_VARCHAR(b, 'UTF-8') FROM strings ORDER BY v ; +-------+--------------------+------------------------+ | V | HEX_ENCODED_STRING | TO_VARCHAR(B, 'UTF-8') | |-------+--------------------+------------------------| | 01 | 3031 | 01 | | A B | 412042 | A B | | Hello | 48656C6C6F | Hello | | NULL | NULL | NULL | +-------+--------------------+------------------------+