3

値が「11B3」の列があります。その値を 0x1880 で AND (&) し、結果を返す SQL ステートメントを (mySQL で) 書きたいと思います。文字列列を 16 進数として扱うことができませんでした。どんな援助にも感謝します。

これは動作しません:

select szVersion,  hex(szVersion), concat("0x",szVersion)

これは必要に応じて機能します(ただし、データベースからプルしません:

select 0x11bx & 0x1880
4

2 に答える 2

6

CONV(szVersion,16,10)を使用します。以下は、期待どおりに動作することの証明です。

次のステートメントの結果と同じ結果が期待されると書いています。

SELECT 0x11B3 & 0x1880;
-> 4224

したがって、望ましい結果は数値 4224 であることがわかります。

テーブルのデータで同じことを行います。

CREATE TEMPORARY TABLE temp_hex SELECT '11B3' AS szVersion;
SELECT CONV(szVersion,16,10) & 0x1880 FROM temp_hex;
-> 4224

同じ結果です。作品:)

于 2016-06-18T14:21:13.790 に答える
0

UNHEX(str) を使用して Hex を Text に変更し、それらを連結できます。

于 2012-06-04T22:13:08.417 に答える