我有一列,其中包含值“11B3”。我想编写一个 SQL 语句(在 mySQL 中),用 0x1880 与(&)该值并返回结果。我一直无法将字符串列视为十六进制数字。如有任何帮助,我将不胜感激。
这不起作用:
select szVersion, hex(szVersion), concat("0x",szVersion)
这可以根据需要发挥作用(但不会从数据库中提取:
select 0x11bx & 0x1880
使用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
同样的结果。作品:)
您可以使用 UNHEX(str) 将 Hex 更改为 Text,然后将它们连接起来。