2016-05-19 6 views
-1
select hex(28) from dual; -- 1C 
select unhex(1C) from dual; -- Error 1054 : Unknown Column '1C' 

結果を10進数値28で得るには、Unhexにはどのようなものを使用しますか?UnHex MySQLの値または列

私の最終目標は、OR演算を実行することで、そうしようとしています:

select b'(binary(unhex(1C))' | b'(binary(unhex(F))' from dual; -- Error 1064 

私は上記の文をachiveはどうすればよいですか?

+0

[16進リテラル]のマニュアルセクション(https://dev.mysql.com/doc/en/hexadecimal-literals.html)を読んでいますか? – eggyal

+0

私はselect unhex( '1C')を試しました。同様に、それは空白の結果を与えています。 conv( '1C'、16,10)のみを選択してください。動作するようです! – Oggu

+0

それでは、上記のリンク先のマニュアルセクションを読んだことがありませんか?おそらくあなたはすべきだと思いませんか? – eggyal

答えて

2

Hexadecimal Literals下で文書化されるように:

MySQLはX'val'x'val'、又はvalは、16進数(0..9A..F)が含ま0xvalフォーマットを用いて書かれた16進値をサポート桁は大文字小文字はありません。 X'val'またはx'val'形式で書かれた値については、valには偶数桁の数字を含める必要があります。 0xvalの構文を使用して書かれた値の場合、奇数桁の値には余分の先頭0があるものとして扱われます。たとえば、0x0aおよび0xaaaは、0x0aおよび0x0aaaと解釈されます。

数値コンテキストでは、16進値は整数(64ビット精度)のように動作します。だから、

SELECT 0x1c | 0xf 

sqlfiddle上でそれを参照してください。文字列のコンテキストでは、彼らは、hexの桁のそれぞれのペアが文字に変換されたバイナリ文字列、のように振る舞います。

関連する問題