5

Java を使用して SQL データベースを作成しました。最初の列は増加する大きな整数で、2番目の列はchar、varchar、およびbinaryとして定義しようとしました。

しかし、私はまだ必要な機能を取得していません。16 進数0aを char 列に格納しようとすると、エラーが発生します。最初に追記0xして保存したようですが、内容を印刷すると白紙です。または、「/」や「?」などの文字が表示される場合もあります。また、SQL エクスプローラーを使用してみましたが、テーブルを表示しても同じ結果が得られます。

私の問題eb8d4ee6.

誰かがこれを行う方法を教えてもらえますか?

4

1 に答える 1

5

http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.htmlを参照してください。

MySQL は、X'val'、x'val'、または 0xval 形式を使用して記述された 16 進数値をサポートします。ここで、val には 16 進数 (0..9、A..F) が含まれます。数字の大文字と小文字は関係ありません。X'val' または x'val' 形式を使用して書き込まれた値の場合、val には偶数の桁数が含まれている必要があります。0xval 構文を使用して記述された値の場合、奇数の桁数を含む値は、先頭に余分な 0 があるものとして扱われます。たとえば、0x0a と 0xaaa は 0x0a と 0x0aaa として解釈されます。

数値コンテキストでは、16 進値は整数 (64 ビット精度) のように機能します。文字列コンテキストでは、バイナリ文字列のように機能し、16 進数の各ペアが文字に変換されます。

おそらく、16 進数を整数列に格納する必要があります。関数を使用して選択するときに、16 進数に戻すことができHEX()ます。

例えば、

INSERT INTO MyTable (`MyIntegerColumn`) VALUES (0xeb8d4ee6);
于 2010-11-29T17:21:41.617 に答える