MySQLのHEX()関数とは?使い方とCONV()関数との違いを徹底解説
MySQLのHEX()関数とは
MySQLのHEX()関数は、10進数の数値や文字列の値を16進数に変換するための関数です。変換後、MySQLはその16進数値を文字列形式で返します。
基本構文
HEX(Num or Str)
HEX()関数は数値と文字列のどちらも引数として受け取ることができます。構文における「Num」は16進数へ変換したい数値、「Str」は各文字を2桁の16進数に変換したい文字列を表します。
使用例1:数値を16進数に変換する
mysql> Select HEX(210); +----------+ | HEX(210) | +----------+ | D2 | +----------+ 1 row in set (0.00 sec)
この例では、10進数の「210」がBIGINT型の数値として扱われ、16進数の文字列表現「D2」に変換されています。
使用例2:文字列を16進数に変換する
mysql> SELECT HEX('NULL');
+-------------+
| HEX('NULL') |
+-------------+
| 4E554C4C |
+-------------+
1 row in set (0.00 sec)この例では、文字列「NULL」の各文字が、1文字につき2桁の16進数に変換されています。具体的には「N」→「4E」、「U」→「55」、「L」→「4C」、「L」→「4C」となり、結果として「4E554C4C」が返されます。
HEX()関数とCONV()関数の違い
基本的に、MySQLのHEX()関数はCONV(N, 10, 16)と同等の動作をします。しかし、両者には重要な違いがあります。
- HEX():文字列の各文字を2桁の16進数に変換できる
- CONV():文字列を16進数に変換しようとすると「0」を返す
この違いは、以下の例で確認できます。
比較例
mysql> Select HEX('N');
+----------+
| HEX('N') |
+----------+
| 4E |
+----------+
1 row in set (0.00 sec)
mysql> Select CONV('N',10,16);
+-----------------+
| CONV('N',10,16) |
+-----------------+
| 0 |
+-----------------+
1 row in set (0.00 sec)同じ文字「N」を指定しても、HEX()関数は正しく「4E」という16進数を返しますが、CONV()関数は文字列を数値として解釈できないため「0」を返します。文字列を16進数に変換したい場合は、HEX()関数を使うのが適切です。
-
localhostとは何か?127.0.0.1との違いをわかりやすく解説
すべてのネットワーク機器が切断されていても、実はコンピュータは一種のネットワーク上で通信を行うことができます。これが「ループバック(loopback)」と呼ばれる仕組みです。Unixマシンは仮想ネットワークデバイスを通じて、自分自身に対してネットワーク通信を送受信できます。つまり、物理的なネットワークが機能していなくても、ネットワーク形式の通信が可能になるのです。 127.0.0.1とは? 127.0.0.1は、最も広く使われているループバックIPアドレスです。このアドレスは、ループバック専用として予約された1,600万個以上のIPアドレス群の一部に含まれます。ループバックを利用することで、コ
-
RTF(.rtf)ファイルとは?他のテキスト形式との違いを徹底解説
テキストファイルを日常的に扱っている方なら、RTF形式を目にしたことがあるかもしれません。一般的な用途ではDOCXやTXT形式がよく使われますが、拡張子が「.rtf」となっているファイルに出会うこともあります。RTFファイルについてよく知らないユーザーの中には、「これは何のためのファイルなのか」「他の形式とどう違うのか」と疑問に思う方も多いでしょう。この記事では、RTFファイルについて詳しく解説します。RTFファイルとは何か?RTFは「Rich Text Format(リッチテキスト形式)」の略で、WordPadやOfficeなどMicrosoft製品で使用される文書形式です。この形式は198