binary
実際に数値のデータ型ではありません。これは、ファイルのようなバイナリデータを格納するために使用される特別なタイプの文字列です。例えば、 char
、binary
には文字マップがなく、数値コードで比較が行われます。
BINARY値が格納されている場合、彼らは右詰めパッドである:行動はThe BINARY and VARBINARY Typeを参照してください、他のプログラミング言語には文字列とバイト配列を扱い、そしてあまりにもMySQLで期待されている方法と同様であること
値を指定された長さに設定します。パッドの値は0x00(ゼロバイト)です。値は挿入時に0x00で右パディングされ、選択時に後続バイトは削除されません。すべてのバイトは、ORDER BYおよびDISTINCT操作を含む比較において重要です。 0x00バイトとスペースは0x00 <のスペースで比較が異なります。
2進数を探しているようですが、数値型を使用するとよいでしょう。たとえば、 int
(またはbit(16)
)、まだ0xFF
のような値を挿入します(これ以上のキャストなしでは'0xFF'
としては表示されません)。 hex(0xFF)
あなたが望む方法で。
バイナリ値を使用する場合(または8ビットを超える大きな値が必要な場合)は、lpadを使用して先行ゼロで埋め込むことができます。
select hex(lpad(0xFF,2,0x0))
あなたが列のサイズを知っている(またはクエリ)しなければならない、とあなたはおそらく2つのバイナリ値を追加するのは簡単な作業から始めて、これで多くの問題に実行されます。だから簡単にするために、数値型を使用してください。
MySQLは高位バイトを想定していません。 'binary(2)'は固定長さ2の文字列で、残りの部分は最後に '\ 0'で埋められます(文字列であるため)。文字列でビットをシミュレートする場合は 'varbinary(2)'を、ビットを持つ場合は 'bit(16)'をデータ型として使用してください。 – Solarflare