MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのUNHEX()関数とは?使い方と具体例をわかりやすく解説

MySQLのUNHEX()関数は、その名の通りHEX()関数とは逆の働きをする関数です。16進数形式の文字列を受け取り、その数値が表すバイト列(バイナリ文字列)へと変換して返します。

基本構文

UNHEX(str)

引数 str には、変換したい16進数形式の文字列を指定します。str を構成するすべての文字は、有効な16進数字(0〜9、A〜F)である必要があります。

使用例

mysql> Select UNHEX('5475746F7269616C73706F696E74');
+---------------------------------------+
| UNHEX('5475746F7269616C73706F696E74') |
+---------------------------------------+
| Tutorialspoint                        |
+---------------------------------------+
1 row in set (0.00 sec)

この例では、16進数の 5475746F7269616C73706F696E74 が、対応するASCIIコードに基づいて文字列「Tutorialspoint」へと変換されています。たとえば先頭の 54 は「T」、次の 75 は「u」にそれぞれ対応しています。つまり、2桁の16進数が1バイト(1文字)として扱われる仕組みです。

補足:無効な引数を渡した場合の挙動

str に16進数字として無効な文字(GやZなど)が含まれていた場合、UNHEX()関数はエラーにはならず、NULLを返します

mysql> SELECT UNHEX('GG');
+-------------+
| UNHEX('GG') |
+-------------+
| NULL        |
+-------------+
1 row in set (0.00 sec)

データの整合性を保つため、UNHEX()関数を使う際は、入力される文字列が正しい16進表記であることを事前に確認しておくと安心です。

  1. MySQLのUNHEX()に相当するPHP関数とは?hex2bin()の使い方を解説

    PHPにおけるMySQLのUNHEX()相当の関数MySQLのUNHEX()関数と同じ処理をPHPで行いたい場合は、hex2bin()関数を使用します。この関数は、16進数形式の文字列をバイナリデータ(元の文字列)に変換するもので、まさにMySQLのUNHEX()に相当する機能を持っています。hex2bin()の基本構文構文は以下の通りです。$anyVariableName = hex2bin(yourHexadecimalValue);引数には16進数の文字列を指定し、戻り値として変換後のバイナリデータが返されます。PHPでの実装例実際にhex2bin()を使用したサンプルコードを見てみまし

  2. MySQLでCHAR()関数の逆の処理を行う方法|ASCII()とORD()の違いを解説

    MySQLにおいて、CHAR()関数の逆の働きをするのは ASCII() 関数と ORD() 関数です。CHAR() は数値(文字コード)を文字に変換する関数ですが、ASCII() は引数の文字列の左端の文字に対応する数値(ASCIIコード)を返し、ORD() は左端の文字の文字コードを返します。 ASCII()とORD()の違い どちらも文字から数値への変換を行う点は共通していますが、以下のような違いがあります。 ASCII():シングルバイト文字専用。マルチバイト文字を渡すと警告が出て64を返します。 ORD():マルチバイト文字にも対応しており、最初のバイトの値に基づいて計算された文字