3

我有一列,其中包含值“11B3”。我想编写一个 SQL 语句(在 mySQL 中),用 0x1880 与(&)该值并返回结果。我一直无法将字符串列视为十六进制数字。如有任何帮助,我将不胜感激。

这不起作用:

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 回答